本部分包含 URP 特定的 ShaderLabUnity 定义着色器对象结构的语言。了解更多信息
参见 词汇表 通道标签的说明。
注意:URP 不支持以下 LightMode 标签:
Always
、ForwardAdd
、PrepassBase
、PrepassFinal
、Vertex
、VertexLMRGBM
、VertexLM
。
此标签的值可让管道确定执行 渲染管道一系列操作,对场景中的内容进行处理并在屏幕上显示。Unity 允许你从预构建的渲染管道中进行选择,或自行编写。了解更多信息
参见 词汇表 不同部分时要使用哪个通道。
如果你未在通道中设置 LightMode
标签,则 URP 将对该通道使用 SRPDefaultUnlit
标签值。
LightMode
标签可以具有以下值。
属性 | 说明 |
---|---|
UniversalForward | 通道渲染对象几何体并计算所有灯光贡献。URP 在前向 渲染路径渲染管线用于渲染图形的技术。选择不同的渲染路径会影响光照和阴影的计算方式。某些渲染路径比其他渲染路径更适合于不同平台和硬件。了解更多信息 参见 词汇表 中使用此标签值。 |
UniversalGBuffer | 通道渲染对象几何体,而不计算任何灯光贡献。在必须由 Unity 在延迟渲染路径中执行的通道中使用此标签值。 |
UniversalForwardOnly | 通道渲染对象几何体并计算所有灯光贡献,这与 LightMode 具有 UniversalForward 值时类似。与 UniversalForward 的不同之处在于,URP 可将通道用于前向渲染路径和延迟渲染路径。 若需在 URP 使用延迟渲染路径时,某个通过必须使用正向渲染路径渲染对象,请使用此值。例如,如果 URP 使用延迟渲染路径渲染场景,且场景中包含着着色器数据不适合 GBuffer 的对象(例如 Clear Coat 法线),请使用此标记。 如果某个着色器必须同时在正向渲染路径和延迟渲染路径中渲染,请使用 UniversalForward 和 UniversalGBuffer 标记值声明两个通过。如果一个渲染器必须使用 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 的运动矢量通道。 |
Unity 在延迟渲染路径中使用此标记。
UniversalMaterialType
标记可以具有以下值。
如果在通道中未设置此标记,Unity 会使用 Lit
值。
属性 | 说明 |
---|---|
Lit | 此值表示着色器类型为 Lit。在 G 缓冲通道期间,Unity 使用模版标记使用 Lit 着色器类型(镜面模型是 PBR)的像素。 如果在通道中未设置标记,Unity 会默认使用此值。 |
SimpleLit | 此值表示着色器类型为 SimpleLit。在 G 缓冲通道期间,Unity 使用模版标记使用 SimpleLit 着色器类型(镜面模型是 Blinn-Phong)的像素计算机图像中最小的单位。像素大小取决于屏幕分辨率。像素光照在每个屏幕像素处计算。 更多信息 在 术语表 中查看。 |