五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

起源引擎的著色器

2023-03-19 13:36 作者:B1ueMicr0  | 我要投稿

著色器是在圖形處理器(Graphics Processing Unit, GPU)上運行的一套程序,用于確定應(yīng)如何繪制對象。著色器替代了傳統(tǒng)的固定渲染管線,可以實現(xiàn)圖形計算中的渲染相關(guān)計算,由于其可編輯性,可以實現(xiàn)各種各樣的圖像效果而不用受顯卡的固定渲染管線限制。著色器曾只存在于離線渲染(如?電影工業(yè))領(lǐng)域,而實時渲染領(lǐng)域的著色器則是在 Microsoft 推出 Shader Model(著色器模型) 后才被首次引入。

  • Source 3D渲染中的所有內(nèi)容都使用基于著色器繪制的方法。

  • 著色器根據(jù)存儲在?材質(zhì)?文件中的參數(shù)進行進一步工作,看似簡單,但里面存有非常復(fù)雜的來處理?實時陰影?、?照明?和?折射?等效果的配置信息。

目錄

  • 1類型

  • 2著色語言

  • 3著色模型

  • 4像素著色器

    • 4.1像素著色器 示例

  • 5頂點著色器

    • 5.1頂點著色器 示例

  • 6著色器在起源引擎中的應(yīng)用

    • 6.1后處理

    • 6.2逐對象

  • 7擴展鏈接 / Reference

    • 7.1注釋

1.著色器類型

著色器(Shader)主要有頂點著色器(Vertex Shader)和像素著色器(Pixel Shader)兩種。Source?SDK 提供了大量現(xiàn)成的著色器。

2.著色語言

目前有三種主要的著色器語言:高階著色語言(HLSL),C for Graphics (Cg) 和 OpenGL 著色語言(GLSL)。Source 使用基于 HLSL 的著色器。HLSL 和 Cg 語言的語法基本相同,大多數(shù) Cg 著色器都可以快速輕松地移植到 HLSL。

3.著色模型

Shader Model (以下簡稱 SM)是一種編程模型,直接地定義了如何使 GPU 運行高階著色技術(shù),同時可以防止太老的 GPU 運行新著色技術(shù)的程序。(防止顯卡爆炸)?Source?支持 SM 2.0(包括 PS 2.0b)和 SM 3.0.?其中 SM 3.0 是一次巨大飛躍,支持浮點精度運算,是現(xiàn)代高畫質(zhì)游戲的基石。因此 Source 的 shader 本身具有極強的拓展性。

?注意:?SM 3.0 的著色器可能無法在 macOS 和 Linux 系統(tǒng)上正常工作,因為 Valve 的轉(zhuǎn)接層 (DirectX To OpenGL)?togl只支持 SM 3.0 的部分特性,如果想要著色器正常工作,你應(yīng)該考慮做一個 SM 2.0b 標(biāo)準(zhǔn)的著色器。

?需證實:對于 vulkan_wrapper 的情況未知 (?Source?并不原生支持 Vulkan API, 只能通過?dxvk?進行轉(zhuǎn)譯。)

  • 為較新的 GPU 創(chuàng)建著色器時,請務(wù)必記住去支持那些較舊 GPU 用的著色器,否則這樣會對老玩家產(chǎn)生很多限制。

  • 舊的 GPU 可能需要“著色器回退 (shader fallbacks)”,如果新版 SM 用不了,那么游戲會使用舊版 SM。

4. 像素著色器

每個被渲染的像素都與像素著色器有關(guān)。像素著色器需要來自頂點的插值輸入,然后再用它來柵格化圖像。像素著色器可以產(chǎn)生涉及單個像素顏色的大量效果,例如?折射?、逐像素照明?和?反射?等等。

4.1 像素著色器 示例

這里我們提供一個像素著色器示例,可以在 Source 中使用。此著色器旨在用作 Post-processing (即?后處理) ,并創(chuàng)建灰度值。

5. 頂點著色器

頂點著色器應(yīng)用于?可編程管線(Programmable Pipeline)?上運作的每個?頂點(Vertex)。其最基本的功能是將幾何體轉(zhuǎn)換為?屏幕空間(Screen-Space)?坐標(biāo),以便?像素著色器?去柵格化圖像。頂點著色器可以修改這些位置坐標(biāo)以執(zhí)行網(wǎng)格變形。它們還可以從?網(wǎng)格(Mesh)?接收其他信息,包括?法線、切線和紋理坐標(biāo)?, 然后頂點著色器就執(zhí)行寫入?(輸出寄存器)?操作,再然后,在像素著色器中的頂點之間對寫入的值進行插值。注意!頂點著色器 無法創(chuàng)建或銷毀頂點;它一次對單個頂點進行操作,將一個未處理的頂點作為輸入并輸出單個處理的頂點。

5.1 頂點著色器 示例

頂點著色器只是個搬運工, 它不會對頂點數(shù)據(jù)進行大改,只是會把數(shù)據(jù)送到像素著色器階段罷了。

6. 著色器在起源引擎中的應(yīng)用

Source 提供兩種不同形式的著色器,分別是?后處理型?和?逐對象型?,Source 中的大多數(shù)特效和材質(zhì)都非常非常依賴其像素著色器組件。

6.1 后處理

后處理著色器通常是在屏幕內(nèi)已經(jīng)渲染好的四邊形的內(nèi)容上工作的像素著色器。這些四邊形會進一步被 Framebuffer 上的數(shù)據(jù)來被進行紋理處理,然后再送到像素著色器來進一步渲染,輸出圖元后再創(chuàng)建各種效果,比如把一些基礎(chǔ)的顏色經(jīng)過后處理管道來達到最佳效果,例如動態(tài)模糊(motion blur)和泛光(bloom)。

注:某些文件已不再包含在 SDK 中。

高級的后期處理著色器[如動態(tài)模糊(motion blur)和泛光(bloom)的著色器]可能還需要使用自定義?RenderTarget。有關(guān)將后處理著色器與模組集成的更多信息,請參閱?Custom_Postprocessing_Effects

6.2 逐對象處理

Source 中的逐對象著色器適用于具有?Valve 材質(zhì) (.vmt)?中引用的著色器的任何對象,比如 模型,筆刷 等。逐對象著色器可用于創(chuàng)建折射材質(zhì)、動態(tài)地修改模型頂點或其他高級渲染效果。

Source SDK 同時也提供逐對象著色器的示例[在光照貼圖(lightmap)里] (sdk_lightmap.cppsdk_lightmap_vs20.fxcsdk_lightmap_ps20.fxc)

7. 擴展鏈接 / Reference

  • A bluffer's guide to Shader Models

  • NVIDIA - The Cg tutorial

  • NVIDIA - GPU Gems

  • NVIDIA - GPU Gems 2

  • NVIDIA - GPU Gems 3

  • Shader?- Wikipedia

  • Introduction to Shaders Tutorial from Wraiyth

  • Post-Process Shader Tutorial from Wraiyth


起源引擎的著色器的評論 (共 條)

分享到微博請遵守國家法律
永年县| 紫云| 滨海县| 泰州市| 乌拉特前旗| 宁化县| 云林县| 新疆| 普安县| 措勤县| 博客| 亚东县| 湄潭县| 井研县| 双峰县| 专栏| 鹤庆县| 马山县| 高邮市| 甘孜县| 新乡市| 阳信县| 深州市| 兴仁县| 宁阳县| 义马市| 南涧| 东丽区| 光泽县| 九江市| 东山县| 临沂市| 三都| 封丘县| 信丰县| 仪征市| 全椒县| 高碑店市| 化德县| 南乐县| 普格县|