无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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-表面著色器中的自定義光照模型的評論 (共 條)

分享到微博請遵守國家法律
麟游县| 甘德县| 神木县| 分宜县| 罗山县| 古丈县| 黄冈市| 婺源县| 平湖市| 定襄县| 汽车| 林芝县| 威信县| 桂阳县| 即墨市| 金湖县| 三明市| 信阳市| 铁岭市| 华安县| 广宗县| 德格县| 福建省| 常州市| 乌鲁木齐市| 宜兰县| 宣恩县| 儋州市| 延吉市| 台南市| 利川市| 旺苍县| 北宁市| 道孚县| 阿拉善盟| 山丹县| 泰兴市| 黄平县| 翼城县| 蕲春县| 耒阳市|