URP | 基礎(chǔ)Unlit Shader 改HLSL
前言
Unity默認沒有HLSL語法的Shader模板,那怎么使用默認的Shader改成一個基礎(chǔ)的URP-Shader
需要幾步,都需要改那?這里全流程走一遍。
HLSL語法
前創(chuàng)建一個新的Shader把里面的CG語法改成就可以變成HLSL語法,


現(xiàn)在還是可以使用的,沒有報錯

第二步切換,CG語法庫


現(xiàn)在就出現(xiàn)一些報錯,一些函數(shù)不能使用。那一個一個解決
UNITY_FOG_COORDS 修改
UNITY_FOG_COORDS ?這里是宏 沒有了,需要手動修改

代碼示例

修改完又出現(xiàn)新的錯誤,是在頂點著色器階段,回去模型頂點階段。

頂點變換函數(shù)
UnityObjectToClipPos 是內(nèi)置的函數(shù),需要改成新函數(shù)

頂點階段,的霧的函數(shù)也是不一樣的

我們需要根據(jù)文檔修改就可以了。

效果

改完頂點階段,我們看Shader有那些錯誤

片元著色器階段
第一個錯誤就是片元著色器沒有 fixed4 類型

需要修改half4類型,fixed4類型精度比較低,HLSL語法不使用。
我們在看一下,還一個霧的函數(shù)錯誤。

回到HLSL庫里找到這個函數(shù)

替換

這樣就全部改完一遍,效果是對的。

注意:half3的類型不能賦值給half4的類型。
雖然對了,還是有倆個報黃色提示,那怎么改了,這個是需要告訴引擎怎么渲染這個材質(zhì)
標(biāo)簽 Tags
設(shè)置一個標(biāo)簽成URP管線


代碼
總結(jié)
這個只是能使用,并不是都替換了,還有貼圖的采樣方式,獲取UV的方式等。
這里把貼圖采樣替換一下,增加C-buffer,貼圖采樣也改一下,

貼圖使用3個變量

效果

標(biāo)簽: