最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

Unity-表面著色器中的自定義光照模型

2021-04-07 12:24 作者:unity_某某師_高錦錦  | 我要投稿

編寫表面著色器時,您將描述表面的屬性(比如反照率顏色和法線),而由__光照模型__計(jì)算光照交互。

有兩個內(nèi)置光照模型,分別是?Lambert?和?BlinnPhong,前者用于漫射光照,后者用于鏡面反射光照。Unity 中的?Lighting.cginc?文件用于定義這些模型(Windows:<unity 安裝路徑>/Data/CGIncludes/Lighting.cginc_;macOS:/Applications/Unity/Unity.app/Contents/CGIncludes/Lighting.cginc_)。

有些時候,您可能希望使用自定義光照模型。為此,可使用表面著色器。光照模型實(shí)際上就是若干符合某些慣例的 Cg/HLSL 函數(shù)。

聲明光照模型

一個光照模型中包含多個名稱以?Lighting?開頭的常規(guī)函數(shù)。您可以在著色器文件中的任何位置聲明這些函數(shù),也可以在其中一個包含的文件中聲明。這些函數(shù)是:

1.half4 Lighting<Name> (SurfaceOutput s, UnityGI gi);?在_不依賴于_視圖方向的光照模型的前向渲染路徑中使用此函數(shù)。

1.half4 Lighting<Name> (SurfaceOutput s, half3 viewDir, UnityGI gi);?在_依賴于_視圖方向的光照模型的前向渲染路徑中使用此函數(shù)。

1.half4 Lighting<Name>_Deferred (SurfaceOutput s, UnityGI gi, out half4 outDiffuseOcclusion, out half4 outSpecSmoothness, out half4 outNormal);?在延遲光照路徑中使用此函數(shù)。

1.half4 Lighting<Name>_PrePass (SurfaceOutput s, half4 light);?在光照預(yù)通道(舊版延遲)光照路徑中使用此函數(shù)。

請注意,您無需聲明所有函數(shù)。光照模型不一定會使用視圖方向。同樣,如果僅在前向渲染中使用光照模型,請勿聲明?_Deferred?和?_Prepass?函數(shù)。這確保了使用視圖方向的著色器僅編譯到前向渲染。

自定義 GI

聲明以下函數(shù)可自定義光照貼圖數(shù)據(jù)和探針的解碼:

1.half4 Lighting<Name>_GI (SurfaceOutput s, UnityGIInput data, inout UnityGI gi);

請注意,要對 Unity 標(biāo)準(zhǔn)光照貼圖和 SH 探針進(jìn)行解碼,您可以使用內(nèi)置函數(shù)?DecodeLightmap?和?ShadeSHPerPixel;這些函數(shù)位于 Unity 內(nèi)部?UnityGlobalIllumination.cginc?文件中的?UnityGI_Base?內(nèi)(Windows:<unity 安裝路徑>/Data/CGIncludes/UnityGlobalIllumination.cginc_;macOS:/Applications/Unity/Unity.app/Contents/CGIncludes/UnityGlobalIllumination.cginc__)。

示例

請參閱有關(guān)表面著色器光照示例的文檔以了解更多信息。


Unity-表面著色器中的自定義光照模型的評論 (共 條)

分享到微博請遵守國家法律
大渡口区| 静宁县| 明溪县| 应用必备| 彩票| 黎平县| 雷山县| 留坝县| 墨江| 滦南县| 玉龙| 康平县| 平陆县| 泾源县| 随州市| 宁南县| 准格尔旗| 禄丰县| 四子王旗| 晋宁县| 秦皇岛市| 天峨县| 耒阳市| 苏尼特左旗| 海口市| 新野县| 汤原县| 霍山县| 韶山市| 合川市| 泾阳县| 德昌县| 长武县| 合作市| 三亚市| 宜州市| 蒙山县| 和硕县| 扶绥县| 望江县| 吉安县|