URP Shader Pass Tag

原文地址

本节包含 URP 特定的 ShaderLab Pass 标签的描述。

URP Pass tags: LightMode

这个标签的值让渲染管线决定在执行渲染管线的不同部分时,使用哪个pass。如果您没有在一个pass中LightMode设置标签,URP 将使用给该pass使用SRPDefaultUnlit标签值。在 URP 中,LightMode标签有以下的几种:

Property Description
UniversalForward 本pass渲染可渲染的几何体并评估光源对光照效果的贡献。URP 在Forward Rendering路径中使用此标记值。
UniversalGBuffer 本pass渲染可渲染的几何体,但不计算光源对光照效果的贡献。URP 在Deferred Rendering路径中使用此标记值。
UniversalForwardOnly 本pass渲染对象几何体并评估光源对光照效果的贡献,类似于LightMode标签值为UniversalForward值时。与UniversalForward的不同之处在于,URP 可以将 这个pass用于Forward Rendering和Deferred Rendering路径。当 URP 使用Deferred Rendering路径时,且某个通道必须使用Forward Rendering路径渲染可渲染物体,请使用此值。例如,如果 URP 使用延迟渲染路径渲染场景。但场景中包含具有不适合使用GBuffer 的着色器数据的对象,(例如透明涂层法线(Clear Coat normals)),则使用此标记。如果着色器必须同时在Forward Rendering和Deferred Rendering路径中渲染,请使用UniversalForwardUniversalGBuffer标签值。如果着色器必须使用Forward Rendering路径进行渲染,而不管 URP 渲染器使用的什么渲染路径,请仅声明一个LightMode标记设置为的通道UniversalForwardOnly
Universal2D 本pass渲染物体并评估 2D光源对光照效果的贡献。URP 在 2D 渲染器中使用此标记值。
ShadowCaster 本pass把光源视为摄像机,从光源的角度出发,把物体的深度值渲染到阴影贴图或深度纹理中。
DepthOnly 本pass把从实际摄像机的角度的透视体出发,把物体的深度值渲染到阴影贴图或深度纹理中。
Meta Unity 仅在 Unity Editor 中烘焙光照贴图时执行此 pass。Unity 会在构建 Player 时从着色器中剥离此 pass。
SRPDefaultUnlit 渲染对象时,使用此标记值绘制额外的通道。例如:绘制物体轮廓。此标记值对前向和延迟渲染路径均有效。当在pass中不显式指定LightMode的标志时,默认使用此标志

URP 不支持以下的内建管线所支持的 LightMode 标签:Always, ForwardAdd, PrepassBase, PrepassFinal, Vertex, VertexLMRGBM, VertexLM