版本:Unity 6 (6000.0)
语言:英语
在自定义 URP 着色器中使用阴影
使 URP 着色器与 SRP 批处理器兼容

URP 参考中的 ShaderLab 通道标签

本部分包含 URP 特定的 ShaderLabUnity 定义着色器对象结构的语言。了解更多信息
参见 词汇表
通道标签的说明。

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

LightMode

此标签的值可让管道确定执行 渲染管道一系列操作,对场景中的内容进行处理并在屏幕上显示。Unity 允许你从预构建的渲染管道中进行选择,或自行编写。了解更多信息
参见 词汇表
不同部分时要使用哪个通道。

如果你未在通道中设置 LightMode 标签,则 URP 将对该通道使用 SRPDefaultUnlit 标签值。

LightMode 标签可以具有以下值。

属性 说明
UniversalForward 通道渲染对象几何体并计算所有灯光贡献。URP 在前向 渲染路径渲染管线用于渲染图形的技术。选择不同的渲染路径会影响光照和阴影的计算方式。某些渲染路径比其他渲染路径更适合于不同平台和硬件。了解更多信息
参见 词汇表
中使用此标签值。
UniversalGBuffer 通道渲染对象几何体,而不计算任何灯光贡献。在必须由 Unity 在延迟渲染路径中执行的通道中使用此标签值。
UniversalForwardOnly 通道渲染对象几何体并计算所有灯光贡献,这与 LightMode 具有 UniversalForward 值时类似。与 UniversalForward 的不同之处在于,URP 可将通道用于前向渲染路径和延迟渲染路径。
若需在 URP 使用延迟渲染路径时,某个通过必须使用正向渲染路径渲染对象,请使用此值。例如,如果 URP 使用延迟渲染路径渲染场景,且场景中包含着着色器数据不适合 GBuffer 的对象(例如 Clear Coat 法线),请使用此标记。
如果某个着色器必须同时在正向渲染路径和延迟渲染路径中渲染,请使用 UniversalForwardUniversalGBuffer 标记值声明两个通过。
如果一个渲染器必须使用 URP 渲染器使用的渲染路径,无论渲染路径是什么,请仅声明一个通过,并将 LightMode 标记设置为 UniversalForwardOnly
如果您使用 SSAO 渲染器功能,请添加一个通过,将 LightMode 标记设置为 DepthNormalsOnly。有关更多信息,请查看 DepthNormalsOnly 值。
DepthNormalsOnly 在延迟渲染路径中,将此值与 UniversalForwardOnly 结合使用。此值允许 Unity 在深度和法线预通过中渲染 着色器运行于 GPU 上的程序。 更多信息
参见 术语表
。在延迟渲染路径中,如果缺少带有 DepthNormalsOnly 标记值的通过,Unity 不会在 网格Unity 的主要图形基元。网格构成了 3D 世界的大部分。Unity 支持三角形或四边形多边形网格。必须将 NURBS、NURMS、细分表面转换为多边形。 更多信息
参见 术语表
四周生成 环境光遮蔽近似估算多少环境光(非来自特定方向的光线)能够照射到表面的一个点上的方法。
参见 术语表
Universal2D 此通过渲染对象并评估二维光贡献。URP 在二维渲染器中使用此标记值。
ShadowCaster 此通过从光线角度渲染对象深度到阴影贴图或深度纹理中。
DepthOnly 此通过仅从 摄像机在场景中创建特定视点图像的组件。输出可绘制到屏幕上或捕捉为一个纹理。 更多信息
参见 术语表
的角度渲染深度信息到深度纹理中。
Meta 仅当在 Unity 编辑器中烘焙光照贴图一种预渲染纹理,包含场景中静态对象上光源的影响。光照贴图叠加在场景几何图形之上,产生光照效果。 更多信息
术语表 中查看
时,Unity 才会执行此通道。构建 Player 时,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 批处理器兼容