URP | 基础Unlit Shader 改HLSL
前言
Unity默认没有HLSL语法的Shader模板,那怎么使用默认的Shader改成一个基础的URP-Shader
需要几步,都需要改那?这里全流程走一遍。
HLSL语法
前创建一个新的Shader把里面的CG语法改成就可以变成HLSL语法,


现在还是可以使用的,没有报错

第二步切换,CG语法库


现在就出现一些报错,一些函数不能使用。那一个一个解决
UNITY_FOG_COORDS 修改
UNITY_FOG_COORDS 这里是宏 没有了,需要手动修改

代码示例

修改完又出现新的错误,是在顶点着色器阶段,回去模型顶点阶段。

顶点变换函数
UnityObjectToClipPos 是内置的函数,需要改成新函数

顶点阶段,的雾的函数也是不一样的

我们需要根据文档修改就可以了。

效果

改完顶点阶段,我们看Shader有那些错误

片元着色器阶段
第一个错误就是片元着色器没有 fixed4 类型

需要修改half4类型,fixed4类型精度比较低,HLSL语法不使用。
我们在看一下,还一个雾的函数错误。

回到HLSL库里找到这个函数

替换

这样就全部改完一遍,效果是对的。

注意:half3的类型不能赋值给half4的类型。
虽然对了,还是有俩个报黄色提示,那怎么改了,这个是需要告诉引擎怎么渲染这个材质
标签 Tags
设置一个标签成URP管线


代码
总结
这个只是能使用,并不是都替换了,还有贴图的采样方式,获取UV的方式等。
这里把贴图采样替换一下,增加C-buffer,贴图采样也改一下,

贴图使用3个变量

效果
