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。
  • 适用场景:根据渲染需求选择合适的标签,优化渲染性能和效果。

如果需要更详细的代码示例或操作步骤,请随时告诉我!

kumakoko avatar
kumakoko
pure coder
comments powered by Disqus