Version: Unity 6.0 (6000.0)
语言 : 中文
在自定义 URP 着色器中使用阴影
使 URP 着色器与 SRP 批处理程序兼容

URP 参考中的 ShaderLab 通道标签

本节介绍特定于 URP 的__ ShaderLab__Unity 用于定义着色器对象结构的语言。更多信息
See in Glossary
通道 (ShaderLab Pass) 标签。

注意:Unity 不支持以下 LightMode 标签:AlwaysForwardAddPrepassBasePrepassFinalVertexVertexLMRGBMVertexLM

LightMode

此标签的值可以让管线确定在执行渲染管线 (Render Pipeline) 的不同部分时使用哪个通道 (Pass)。

如果没有在管线中设置 LightMode 标签,URP 将使用该通道的 SRPDefaultUnlit 标签值。

LightMode 标签可以具有以下值。

属性 描述
UniversalForward 该通道会渲染对象几何体并评估所有光源影响。URP 在前向渲染路径 (Forward Rendering Path) 中使用此标签值。
UniversalGBuffer 该通道会渲染对象几何体,但不评估任何光源影响。在 Unity 必须在延迟渲染路径 (Deferred Rendering Path) 中执行的通道中使用此标签值。
UniversalForwardOnly 此通道会渲染对象几何体并评估所有光源贡献,类似于 LightMode 具有 UniversalForward 值的情况。与 UniversalForward 的不同之处在于,URP 可以将通道用于前向渲染路径和延迟渲染路径。
如果 URP 使用延迟渲染路径时某个通道必须使用前向渲染路径渲染对象,则请使用此值。例如,如果 URP 使用延迟渲染路径渲染场景,而场景中包含的对象的着色器数据不适合 GBuffer(例如透明涂层 (Clear Coat) 法线),则请使用此标签。
如果着色器必须在前向渲染路径和延迟渲染路径中渲染,则请声明两个具有 UniversalForwardUniversalGBuffer 标签值的通道。
如果着色器必须使用前向渲染路径进行渲染(无论 URP 渲染器使用哪种渲染路径),则请仅声明 LightMode 标签设置为 UniversalForwardOnly 的通道。
如果使用 SSAO 渲染器功能 (SSAO Renderer Feature),请添加 LightMode 标签设置为 DepthNormalsOnly 的通道。有关更多信息,请查看 DepthNormalsOnly 值。
DepthNormalsOnly 将此值与延迟渲染路径中的 UniversalForwardOnly 结合使用。此值允许 Unity 在深度和法线预通道中渲染着色器。在延迟渲染路径中,如果缺少具有 DepthNormalsOnly 标签值的通道,则 Unity 不会在网格 (Mesh) 周围生成环境光遮挡。
Universal2D 该通道会渲染对象并评估 2D 光源影响。URP 在 2D 渲染器 (2D Renderer) 中使用此标签值。
ShadowCaster 该通道从光源的角度将对象深度渲染到阴影贴图或深度纹理中。
DepthOnly 该通道仅从摄像机的角度将深度信息渲染到深度纹理中。
Meta Unity 仅在 Unity 编辑器中烘焙光照贴图时执行该通道。Unity 在构建播放器时会从着色器中剥离该通道。
SRPDefaultUnlit 使用此 LightMode 标签值可在渲染对象时绘制额外的通道。应用程序示例:绘制对象轮廓。此标签值对前向和延迟渲染路径均有效。
当通道没有 LightMode 标签时,URP 将此标签值用作默认值。
MotionVectors 使用此标签向着色器添加运动矢量支持。有关更多信息,请参阅 ShaderLab 的运动矢量通道

UniversalMaterialType

Unity 在延迟渲染路径中使用此标签。

UniversalMaterialType 标签可以具有以下值。

如果未在通道中设置此标签,Unity 将使用 Lit 值。

属性 描述
Lit 此值指示着色器类型为光照 (Lit)。在 G 缓冲区通道期间,Unity 使用模板来标记使用光照 (Lit) 着色器类型(镜面反射模型为 PBR)的像素。
如果未在通道中设置标签,则 Unity 默认使用此值。
SimpleLit 此值指示着色器类型为简单光照 (SimpleLit)。在 G 缓冲区通道期间,Unity 使用模板来标记使用简单光照 (SimpleLit) 着色器类型(镜面反射模型为 Blinn-Phong)的像素。
在自定义 URP 着色器中使用阴影
使 URP 着色器与 SRP 批处理程序兼容