URP Shader Pass Tag
Table of Contents
以下是将上述回答表格化的结果:
URP 中 ShaderLab Pass 标签参考
1. LightMode 标签
标签值 | 描述 | 适用场景 |
---|---|---|
UniversalForward | 渲染对象几何体并计算所有光照贡献。 | Forward 渲染路径 |
UniversalGBuffer | 渲染对象几何体但不计算光照贡献。 | Deferred 渲染路径 |
UniversalForwardOnly | 渲染对象几何体并计算所有光照贡献,可在 Forward 和 Deferred 渲染路径中使用。 | Deferred 渲染路径中需要 Forward 渲染的对象(如 Clear Coat 法线) |
DepthNormalsOnly | 用于深度和法线预渲染,生成环境光遮蔽(AO)。 | Deferred 渲染路径,结合 UniversalForwardOnly 使用 |
Universal2D | 渲染对象并计算 2D 光照贡献。 | 2D 渲染器 |
ShadowCaster | 渲染对象从光源视角的深度到阴影贴图或深度纹理。 | 阴影生成 |
DepthOnly | 渲染从相机视角的深度信息到深度纹理。 | 深度渲染 |
Meta | 仅在 Unity 编辑器烘焙光照贴图时执行,构建时会被剥离。 | 光照贴图烘焙 |
SRPDefaultUnlit | 用于绘制额外 Pass(如对象轮廓),适用于 Forward 和 Deferred 渲染路径。 | 绘制额外 Pass(如轮廓) |
MotionVectors | 用于支持运动矢量(Motion Vectors)的 Pass。 | 运动矢量渲染 |
2. UniversalMaterialType 标签
标签值 | 描述 | 适用场景 |
---|---|---|
Lit | 表示着色器类型为 Lit(PBR 高光模型),在 G-buffer Pass 中使用模板标记使用 Lit 着色器的像素。 | Deferred 渲染路径 |
SimpleLit | 表示着色器类型为 SimpleLit(Blinn-Phong 高光模型),在 G-buffer Pass 中使用模板标记使用 SimpleLit 着色器的像素。 | Deferred 渲染路径 |
URP 不支持以下的内建管线所支持的 LightMode 标签:Always
, ForwardAdd
, PrepassBase
, PrepassFinal
, Vertex
, VertexLMRGBM
, VertexLM
。
总结
- LightMode 标签:定义 Pass 在渲染管线中的用途,支持多种渲染路径和功能。
- UniversalMaterialType 标签:在 Deferred 渲染路径中定义材质类型,支持 Lit 和 SimpleLit。
- 适用场景:根据渲染需求选择合适的标签,优化渲染性能和效果。
如果需要更详细的代码示例或操作步骤,请随时告诉我!