无码人妻丰满熟妇奶水区码,成年高潮网址,观看免费干B,欧美日韩深喉

AMD工程師傾囊相授:教你如何成為一名圖形程序員?(amd的cpu做圖形處理怎么樣)

AMD工程師傾囊相授:教你如何成為一名圖形程序員?(amd的cpu做圖形處理怎么樣)

CSDN 編者按】

本文的兩位作者皆是 AMD 的工程師,他們在日常也會像很多程序員一樣,被問如何成為一名圖形工程師,或者有沒有一些資源推薦?;诖耍麄儗懴铝诉@篇文章,并且匯集了一些適合圖形工程師入門的相關(guān)資料。

原文鏈接:https://gpuopen.com/learn/how_do_you_become_a_graphics_programmer/

作者 | Lou Kramer,Rys Sommefeldt

譯者 | ChatGP 責(zé)編 |夢依丹

出品 | CSDN(ID:CSDNnews)

Graphics Programmer 一般指圖形工程師,從事圖形編程的專業(yè)人員,他們利用編程和圖形學(xué)知識來創(chuàng)建各種視覺效果和圖形應(yīng)用。本文的兩位作者皆是 AMD 的工程師,他們在日常也會像很多程序員一樣,被問如何成為一名圖形工程師,或者有沒有一些資源推薦。基于此,他們寫下了這篇文章,并且匯集了一些適合圖形工程師入門的相關(guān)資料。

AMD工程師傾囊相授:教你如何成為一名圖形程序員?(amd的cpu做圖形處理怎么樣)

選擇哪門編程語言?

當(dāng)他們與學(xué)生分享工作內(nèi)容時,幾乎總會被問到:你們使用哪種編程語言?簡短地回答是 C 。

詳細(xì)的回答是這樣的,如果你從事圖形編程,你會使用 C 編寫主機(jī) CPU 的代碼,但你還需要編寫針對 GPU 的代碼,通常被行業(yè)稱為著色器代碼,使用高級著色語言(如HLSL或GLSL)編寫。你還需要一種方法將它們聯(lián)系起來,通過 CPU 向 GPU 發(fā)送請求,使用著色器和其他必要的數(shù)據(jù)和元數(shù)據(jù)來實現(xiàn)有用的操作。這就是圖形應(yīng)用程序編程接口(API)的作用,通常使用 C 編寫主機(jī) CPU 代碼來驅(qū)動它們。

所以更有爭議的問題是:應(yīng)該從哪個圖形 API 入手?其實這個沒有確定的答案,只有一系列不同的觀點(diǎn)和考慮因素。

AMD工程師傾囊相授:教你如何成為一名圖形程序員?(amd的cpu做圖形處理怎么樣)

選擇哪個圖形 API ?

本文將重點(diǎn)介紹一些應(yīng)用在大多數(shù) PC 游戲或 3D 應(yīng)用程序員的常見圖形 API,暫時忽略像游戲主機(jī)那樣(主要)使用專有API的情況。

盡管有各種不同的圖形 API,但 2023 年主要用以下幾種:

  • OpenGL? / Microsoft? DirectX? 11 / WebGL?

  • Vulkan? / Microsoft? DirectX? 12 / Metal / WebGPU

OpenGL?、DirectX? 11 和WebGL? 是傳統(tǒng)的 API。它們基于 GPU 編程的歷史方法。盡管如此,它們在學(xué)術(shù)界和工業(yè)界仍被廣泛使用,從程序員的角度來看它們更簡單,因此更容易學(xué)習(xí)。然而,它們的簡單性是有代價的,隨著時間的推移,這些 API 在驅(qū)動程序和運(yùn)行時代碼中的底層實現(xiàn)會變得更加復(fù)雜,進(jìn)而帶來主機(jī)端瓶頸和給 GPU 供應(yīng)商編寫驅(qū)動帶來了更大的挑戰(zhàn),因為他們要處理更復(fù)雜的 API 實現(xiàn)。

(注:OpenGL?、DirectX?、WebGL?、Vulkan?和Metal是注冊商標(biāo),歸其各自所有者所有。)

在 2013 年至 2016 年期間,AMD 在 PC 上推出 Mantle 圖形 API,它為程序員提供了更底層的 GPU 訪問方式,相較于傳統(tǒng) API 更加高效。這一改變帶來了更好的性能,為圖形編程帶來了新的可能性。

2014 年,蘋果推出了 Metal 圖形 API。2016年,Microsoft 的 DirectX? 12 和 Khronos Group 的 Vulkan? 也發(fā)布了類似的 API。這些 API 都采用了更低級別、更顯式的 GPU 編程方法,要求程序員更清晰地指定 GPU 操作,從而給予程序員更多的控制能力。

新一代的圖形 API 將更多的責(zé)任和控制權(quán)交給了應(yīng)用程序開發(fā)者,而不是由 GPU 驅(qū)動程序來處理。這樣做的好處是程序員可以更加精確地控制 GPU 的操作,從而提高性能和效率。

在了解上述 GPU 編程范式的轉(zhuǎn)變之后,如何選擇 API 也會變得簡單。如果你想在以 PC 游戲為主目標(biāo)的 Windows? 上進(jìn)行圖形編程,那么直覺會告訴你選擇 Vulkan? 或 DirectX? 12 是明智的,因為它們是新技術(shù)。那么,真的是這樣嗎?

然而,傳統(tǒng)的圖形 API 仍然在被廣泛使用,而且它們更加簡單和易于學(xué)習(xí)。因此,先學(xué)習(xí)傳統(tǒng) API,然后再逐漸過渡到現(xiàn)代圖形 API 可能是一個合理的選擇。就像在攀登珠穆朗瑪峰之前先在自家附近的小山上進(jìn)行訓(xùn)練一樣。

舉個簡單的比較,繪制一個三角形在圖形編程中相當(dāng)于\”Hello, World!\”。使用OpenGL?或DirectX? 11 只需要大約 10 行代碼就可以實現(xiàn),而 Vulkan? 和 DirectX? 12 則需要至少一個數(shù)量級更多的代碼。

因此,你也可以說 Vulkan? 和 DirectX? 12 需要更多的代碼來手動控制 GPU。盡管需要寫更多的代碼,但每一行代碼都更明確地描述了最終在 GPU 上發(fā)生的事情。而在 OpenGL? 和 DirectX? 11 中,很多細(xì)節(jié)都被 API 隱藏和自動處理,這使得 GPU 看起來像是一個神奇的盒子,而你需要做的一些事情可能難以理解其背后的 GPU 工作原理。

因此,選擇學(xué)習(xí)哪種 API 取決于個人的需求和目標(biāo)。如果你想快速入門并學(xué)習(xí)基本的圖形編程概念,傳統(tǒng) API 可能更適合你。如果你有更高的要求,希望獲得更多的控制權(quán)和性能優(yōu)化,那么學(xué)習(xí)現(xiàn)代圖形 API 如 Vulkan? 或 DirectX? 12 將是一個不錯的選擇。

Vulkan? and DirectX? 12 確實要求你在早期就處理和獲得更低級別的知識和理解,而 OpenGL? 和 DirectX? 11 則在更高級別上操作,讓你專注于圖形編程更高效的一面。

看完上面的分析之后,如果你還存在顧慮,不妨看看 AMD 游戲工程團(tuán)隊對于選擇傳統(tǒng) API 還是現(xiàn)代 API 的真實看法:

\”作為一個十幾歲的孩子從學(xué)習(xí) DX12? 或 Vulkan? 開始進(jìn)行圖形編程可能會很困難。\”

\”我們離那個古老的 glVertex hello triangle 還有很長的路要走。\”

\”遺憾的是 OpenGL? 不再那么重要了。\”

\”我認(rèn)為(OpenGL?)仍然足夠好,可以用來學(xué)習(xí)基礎(chǔ)知識,我個人觀點(diǎn)。\”

\”我最開始使用的是 DX10?,我覺得還不錯,但如果不精通 C 的話,很多孩子會遇到困難。\” – DX10? 是 DX11? 的前身,已經(jīng)過時了,不要學(xué)習(xí) DX10?!

\”但有很多因素需要考慮。學(xué)習(xí)光柵化和光線追蹤的理論。學(xué)習(xí)傳統(tǒng)渲染管線。學(xué)習(xí)如何向 GPU 分配工作等等……我不知道應(yīng)該按什么順序?qū)W習(xí)它們,但我通常完全使用 C (沒有必要從其他語言開始),所以我可能應(yīng)該建議直接從Vulkan? 開始……但老實說,我不太確定。\”

當(dāng)然,還有一種可能性,就是學(xué)習(xí)圖形編程而不使用 OpenGL? 和 DirectX? 11,或者 Vulkan? 和 DirectX? 12。文中提到的 WebGL? 和 WebGPU,它們是在 Web 瀏覽器領(lǐng)域中可用的廣泛類別的圖形 API,這兩種 API 都在自己獨(dú)立的軟件生態(tài)系統(tǒng)(可以說是一個完整的操作系統(tǒng))中運(yùn)行。

在 Web 瀏覽器中,你也可以通過 WebGL? 或 WebGPU 實現(xiàn)實時圖形!其中一個優(yōu)勢是你不需要使用 C 來進(jìn)行 Web 開發(fā),盡管你仍然可以通過諸如 WebAssembly 之類的技術(shù)在瀏覽器中使用 C 來驅(qū)動圖形。在 Web 瀏覽器中,JavaScript 是主流的編程語言,非常適合進(jìn)行圖形開發(fā)。

另外,如果你想先專注于更高級別的內(nèi)容,不想過多涉及圖形 API 的低級細(xì)節(jié)和手動編寫著色器,那么使用游戲引擎可能是一個合適的選擇。Unreal Engine 是最大的 PC 游戲引擎,Unity? 是最常見的替代選擇,還有許多更小、更簡單的開源引擎,如 Godot,供你嘗試和玩耍。

以下是來自 AMD 游戲工程團(tuán)隊的一些觀點(diǎn):

\”我認(rèn)為讓新手從 DX12? 或 Vulkan? 開始可能有些困難,但也許是可行的。我會建議從 WebGL? 開始,只是為了理解圖形渲染管線,可能是最簡單的方式(你可以專注于正確的內(nèi)容)。\”

\”WebGPU 可能會讓你更接近現(xiàn)代圖形 API 的概念,而不需要過多關(guān)注低級細(xì)節(jié)。\”

\”WebGPU 可能會變得更好,但目前我認(rèn)為一旦你開始編寫復(fù)雜代碼,可能會遇到許多問題。盡管如此,它非???,并且意外工作得很好。我真誠希望它能變得更好,但現(xiàn)在已經(jīng)非常有前景。對于原型開發(fā)來說,它非常出色。而且,它可能也是學(xué)習(xí)/教學(xué)的良好 API。\”

\”我知道一些學(xué)校在他們的首個渲染課程中使用 Unity?,這可能還不錯,但存在這樣的風(fēng)險,學(xué)生們可能永遠(yuǎn)不會理解為什么需要學(xué)習(xí)底層內(nèi)容……\”

\”如果你對現(xiàn)代圖形渲染管線以及 GPU 硬件的高級實現(xiàn)方式有很好的掌握,或者你想在學(xué)習(xí)過程中逐步了解 GPU 硬件,那么從一個顯式的 API 開始是可以的。否則,先從一些更簡單的內(nèi)容開始,然后在需要或者有興趣時再轉(zhuǎn)向顯式的API。\”

\”就個人而言,我認(rèn)為在開始編寫自定義主機(jī)代碼之前,通過流行的游戲引擎熟悉著色器可能是入門的好方式。如果你對在圖形 API 中想要實現(xiàn)什么有清晰的思路,學(xué)習(xí)會更加困難,否則當(dāng)你開始處理三角形時可能會放棄學(xué)習(xí)。\”

AMD工程師傾囊相授:教你如何成為一名圖形程序員?(amd的cpu做圖形處理怎么樣)

一些實用性的資源

以下是 AMD 游戲工程團(tuán)隊推薦的一些學(xué)習(xí)資源:

  • https://learnopengl.com – “LearnOpenGL 是最適合初學(xué)者的學(xué)習(xí)網(wǎng)站,它向你展示了如何使用實際的 API 在 C 中完成這些工作。”

  • https://www.scratchapixel.com – “Scratchapixel 之所以好,是因為你不會得到一堆代碼,而是專注于學(xué)習(xí)光線追蹤等內(nèi)容?!?/p>

  • https://www.udemy.com/ – “Udemy 是一個幫助人們?nèi)腴T的好地方?!?/p>

  • https://rastertek.com/tutindex.html – OpenGL?/DirectX?11 教程

  • https://github.com/RayTracing/raytracing.github.io : 《Ray Tracing in one weekend》 – “我喜歡實踐式的學(xué)習(xí)方法,所以如果你有一點(diǎn)編碼能力,周末學(xué)會光線追蹤是不錯的選擇?!?/p>

  • https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/ – “從 GPU 的角度了解圖形渲染管線。這是 2011 年的內(nèi)容,所以它是在顯式 API 出現(xiàn)之前的,但很多硬件和軟件概念仍然適用?!?/p>

  • https://sotrh.github.io/learn-wgpu/ – “有一個與 learnopengl 類似風(fēng)格的“學(xué)習(xí) WebGPU”網(wǎng)站,但還處于進(jìn)行中。”

  • https://codelabs.developers.google.com/your-first-webgpu-app – “我還沒有完全閱讀它,但它還不錯。”

  • https://www.shadertoy.com/ – “Shadertoy 允許你編寫著色器,無需處理任何圖形 API。如果我當(dāng)初沒有從更簡單的東西開始(對我來說只是在 Java 畫布上直接繪制),我可能永遠(yuǎn)對圖形不感興趣,也不會想要學(xué)習(xí) OpenGL??!?/p>

  • https://vulkan-tutorial.com/ – “我還覺得讓人們不要害怕復(fù)制粘貼,特別是在使用 Vulkan? 和 DirectX? 時?!?/p>

AMD工程師傾囊相授:教你如何成為一名圖形程序員?(amd的cpu做圖形處理怎么樣)

總結(jié)

如果你到現(xiàn)在還沒有決定要從哪種編程語言和圖形 API 生態(tài)系統(tǒng)開始,請不要擔(dān)心。你可以嘗試不同的方法,然后選擇最適合你的那個。

當(dāng)然,你也可以在本文留言,分享你學(xué)習(xí)圖形編程的經(jīng)驗和想法,也可以分享相關(guān)資源。

AMD工程師傾囊相授:教你如何成為一名圖形程序員?(amd的cpu做圖形處理怎么樣)

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2024年7月8日 上午11:00
下一篇 2024年7月8日 上午11:12

相關(guān)推薦

  • erp系統(tǒng)辦公

    erp系統(tǒng)辦公:企業(yè)數(shù)字化轉(zhuǎn)型的關(guān)鍵 隨著數(shù)字化時代的到來,企業(yè)數(shù)字化轉(zhuǎn)型已經(jīng)成為不可避免的趨勢。在數(shù)字化轉(zhuǎn)型的過程中,erp系統(tǒng)辦公是企業(yè)實現(xiàn)數(shù)字化轉(zhuǎn)型的關(guān)鍵之一。本文將介紹er…

    科研百科 2025年1月2日
    1
  • 邊坡坡度 緯地

    邊坡坡度是影響邊坡生態(tài)和地質(zhì)穩(wěn)定性的重要因素之一。在邊坡上,坡度的大小和方向決定了邊坡上的自然土壤侵蝕速率、水土流失程度和巖石風(fēng)化速度。因此,控制邊坡坡度的大小和方向?qū)τ诒Wo(hù)邊坡生…

    科研百科 2024年12月4日
    11
  • 建筑設(shè)計項目管理系統(tǒng)

    建筑設(shè)計項目管理系統(tǒng) 隨著現(xiàn)代建筑行業(yè)的快速發(fā)展,建筑設(shè)計項目管理系統(tǒng)已經(jīng)成為了一個必要的工具。建筑設(shè)計項目管理系統(tǒng)可以提高建筑設(shè)計的效率和質(zhì)量,降低項目管理的難度和風(fēng)險。本文將介…

    科研百科 2024年7月14日
    20
  • 論路橋項目工程機(jī)械的管理與維護(hù)(論路橋項目工程機(jī)械的管理與維護(hù) 楊玥)

    趙亮 貴州路橋集團(tuán)有限公司 摘 要:傳統(tǒng)的項目工程管理工作主要以質(zhì)量、工期為管控目標(biāo),相關(guān)企業(yè)并未樹立設(shè)備管理觀念,施工機(jī)具的管理水平較差,影響了工程機(jī)械的利用率,不利于施工效率的…

    科研百科 2024年6月12日
    38
  • 武漢醫(yī)學(xué)院科研項目名單

    以下是武漢醫(yī)學(xué)院科研項目名單: 1. 項目名稱:基于深度學(xué)習(xí)的醫(yī)學(xué)圖像分割研究 2. 項目名稱:基于微流控芯片的自動化手術(shù)系統(tǒng)研究 3. 項目名稱:基于基因編輯的癌癥治療研究 4….

    科研百科 2025年5月15日
    2
  • 軟件代理注冊協(xié)議書(軟件代理注冊協(xié)議書范本)

    軟件代理注冊協(xié)議書篇1   甲方(委托方):__________________   乙方(受托方):__________________   甲方因業(yè)務(wù)發(fā)展需要欲在香港成立公司,…

    科研百科 2024年5月2日
    51
  • 軟件開發(fā) 項目管理 工具

    軟件開發(fā)項目管理工具 隨著軟件開發(fā)行業(yè)的快速發(fā)展,軟件開發(fā)項目管理已經(jīng)成為了軟件開發(fā)過程中必不可少的一部分。一個好的軟件開發(fā)項目管理工具可以提高軟件開發(fā)項目管理的效率和質(zhì)量,本文將…

    科研百科 2024年9月25日
    4
  • 莆田項目工程管理系統(tǒng)

    莆田項目工程管理系統(tǒng) 隨著現(xiàn)代工程管理的不斷進(jìn)步,的項目工程管理系統(tǒng)已經(jīng)成為了項目管理中不可或缺的一部分。一個好的項目工程管理系統(tǒng)可以提高項目管理的效率和質(zhì)量,降低項目風(fēng)險,提高項…

  • ios輕量版app大全免費(fèi)

    標(biāo)題:ios輕量版app大全免費(fèi):你不可錯過的app寶藏 近年來,隨著智能手機(jī)的普及, iOS 操作系統(tǒng)已經(jīng)成為了許多人生活中不可或缺的一部分。而 iOS 輕量版app 則是其中最…

    科研百科 2024年9月30日
    275
  • 敏捷項目管理軟件

    敏捷項目管理軟件:如何幫助您更高效地管理項目 隨著現(xiàn)代軟件開發(fā)越來越復(fù)雜和快速,傳統(tǒng)的計劃和跟蹤方法已經(jīng)無法跟上快速變化的需求。敏捷方法,一種基于需求的快速響應(yīng)和團(tuán)隊協(xié)作的方法,已…

    科研百科 2024年7月22日
    1
人妻熟女香港日韩欧美 | 欧美亚综合在线一区| 天天操夜夜操视频三级| 亚洲高清无码不卡祝频| 熟女婷婷乱伦丁香| 中文字幕3区4区| 激情一区在线| 午夜爱av| 91精品国产欧美一区二区妖精 | 淫淫淫淫欧《亚洲欧美淫淫淫》| 一日本道三区四区| 日韩黄片精品视频| 国产老师 码高潮尤在线观看| 后入在线免费看片| 久久1区2区| 日本一区二区三区久久不卡| 91人妻 视频| 国产高清自拍一区| 通江县| 午夜激情在线观看不卡| 久久精品祝视频| 美女Av 在线免费| 亚洲精品二区美女| 偷拍激情视频一区二区三| 亚洲Bt欧美一区合法吗| 麻豆9 1天美| 久久成人高清视频| av老司机| 日韩欧美不良网站在线观看视频 | 日本韩国久久久一区| 好吊妞成人精品视频| 在线观看艹艹艹视频| 日韩欧美精品伦理视频在线看| 天堂在线一区| 一级黄片永久永久永久| 极品尤物在线观看污一起草| 国产69精品久久99不卡二区| 国产精品白虎在线视频| 2027四区黄片| 午夜福利在线观看日本伦理电影| 成人超碰在家线|