欢迎光临散文网 会员登陆 & 注册

URP | 基础Unlit Shader 改HLSL

2021-11-27 15:32 作者:那个人真狗  | 我要投稿

前言

  • 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个变量

  • 效果


URP | 基础Unlit Shader 改HLSL的评论 (共 条)

分享到微博请遵守国家法律