版权声明:
- 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明
- 文章内容不得删减、修改、演绎
综述
许多在线着色器代码教程旨在用于 Unity 的内置渲染管线,但可能无法在URP管线中工作 - 它们要么会产生洋红色错误,要么至少与SRP Batcher不兼容,SRP Batcher 会批处理在每个着色器/材质的绘制调用之间进行设置,因此使用该着色器渲染许多对象将具有更高的性能。
在“项目”窗口中选择着色器时,可以通过查看检查器来检查该着色器是否与 SRP Batcher 兼容。可以通过“帧调试器”窗口检查对象是否正确批处理。如果着色器为Unlit并且不使用任何属性(纹理除外),则它可能已经兼容。
如果没有,那么理想情况下应该重写。任何使用 Surface Shader 模板(#pragma surface函数)的着色器也不与 URP 兼容,并且需要重写为顶点/片元着色器。使用 Shader Graph 可能更容易,但它无法访问所有内容,有些人可能更喜欢编写代码。
如果已经熟悉为内置渲染管线编写着色器,可能需要跳到最后部分,了解差异摘要、可以使用的函数和模板列表。
本系列文章目录(建议收藏):
在URP管线中编写Shader代码:【1】ShaderLab
在URP管线中编写Shader代码:【3】内置与 URP 差异摘要