Shaders and Materials
通用渲染管线使用了一种不同于Unity内置渲染管线的着色方法。因此,内置的照明和自定义照明着色器不能与URP一起工作。相反,URP有一套新的标准着色器。URP为最常见的用例场景提供了以下着色器:
- Complex Lit
- Lit
- Simple Lit
- Baked Lit
- Unlit
- Particles Lit
- Particles Simple Lit
- Particles Unlit
- SpeedTree
- Autodesk Interactive
- Autodesk Interactive Transparent
- Autodesk Interactive Masked
升级建议:如果你升级你当前的项目到URP,你可以升级内置的着色器到新的。来自内置渲染管线的无光着色器仍然与URP一起工作。
对于SpeedTree着色器,当你重新导入它们时,Unity不会重新生成材质,除非你点击生成材质或应用&生成材质按钮。
注意:来自Unity内置的渲染管线的Unlit Shaders也可以在URP中工作。
Choosing a Shader
通过通用渲染管线,你可以通过物理基础着色器(PBS)和非物理基础渲染(PBR)获得实时照明。
对于PBS,使用Lit Shader(灯光着色器)。您可以在所有平台上使用它。着色器的质量取决于平台,但在所有平台上保持物理的渲染。这为您提供了跨硬件的逼真图形。Unity标准着色器和标准(高光设置)着色器都映射到URP中的Lit Shader(光照着色器)。有关着色器映射的列表,请参见着色器映射部分。
如果您的目标是功能较弱的设备,或者您的项目有较简单的阴影,使用Simple Lit shader,它是non-PBR。
如果你不需要实时照明,或者宁愿只使用烘焙照明和全局照明采样,选择Baked Lit Shader(烘焙照明着色器)。
如果你根本不需要在材质上照明,你可以选择无照明的着色器。
SRP Batcher compatibility
确保一个着色器是SRP批处理兼容:
- 在一个名为UnityPerMaterial的CBUFFER中声明所有材质属性。
- 在一个名为UnityPerDraw的CBUFFER中声明所有内置引擎属性,比如unity_ObjectToWorld或unity_WorldTransformParams。
有关SRP批处理程序的更多信息,请参见页面脚本渲染管道(SRP)批处理程序。