版本:Unity 6 (6000.0)
语言 : 英语
ShaderLab 参考中的 Name 指令
ShaderLab 参考中的着色器代码块

ShaderLab 参考中的 Pass 标签

此页面包含有关在您的 ShaderLabUnity 用于定义着色器对象结构的语言。 更多信息
参见 术语表
代码中使用 Tags 块为 Pass 分配标签的信息。它还包含有关使用 LightMode 标签的信息。

有关 着色器在 GPU 上运行的程序。 更多信息
参见 术语表
对象的工作原理以及 着色器对象着色器类的实例,着色器对象是着色器程序和 GPU 指令的容器,以及告诉 Unity 如何使用它们的信息。将它们与材质一起使用以确定场景的外观。 更多信息
参见 术语表
、子着色器和 Pass 之间的关系的信息,请参见 着色器对象基础.

渲染管线兼容性

功能名称 通用 渲染管线一系列操作,这些操作获取场景的内容并在屏幕上显示它们。Unity 允许您从预构建的渲染管线中选择,或编写自己的渲染管线。 更多信息
参见 术语表
(URP)
高清渲染管线 (HDRP) 自定义 SRP 内置渲染管线
ShaderLab:Pass 标签块
ShaderLab:LightMode Pass 标签

语法

签名 函数
Tags {"<name1>" = "<value1>" "<name2>" = "<value2>"} 将给定的标签应用于 Pass。

您可以定义任意数量的标签。

LightMode 标签

签名 函数
“LightMode” = “[value]” 设置此 Pass 的 LightMode 值。

此标签的有效值取决于渲染管线。

LightMode 标签有效值

这些是内置渲染管线中 LightMode Pass 标签的有效值。有关 LightMode 标签的更多信息,请参见 ShaderLab:使用 Pass 标签.

函数
Always 始终渲染;不应用任何灯光。这是默认值。
ForwardBase 前向渲染一种渲染路径,根据影响对象的光源,通过一次或多次传递渲染每个对象。灯光本身也根据其设置和强度通过前向渲染以不同的方式处理。 更多信息
参见 术语表
中使用;应用环境光、主要方向光、顶点/SH 光和 光照贴图预渲染的纹理,其中包含光源对场景中静态对象的影响。光照贴图叠加在场景几何体上以创建灯光效果。 更多信息
参见 术语表
.
ForwardAdd 在前向渲染中使用;应用逐像素的叠加灯光,每个灯光一个 Pass。
Deferred 延迟着色内置渲染管线中的一种渲染路径,它对可以影响游戏对象的灯光数量没有限制。所有灯光都通过逐像素的方式进行评估,这意味着它们都与法线贴图等正确交互。此外,所有灯光都可以具有烘焙阴影和阴影。 更多信息
参见 术语表
中使用;渲染 G 缓冲区。
ShadowCaster 将对象深度渲染到阴影贴图或深度纹理中。
MotionVectors 用于计算每个对象的运动向量。
Vertex 在对象未应用光照贴图的情况下,在传统顶点灯光渲染中使用;应用所有顶点灯光。
VertexLMRGBM 在应用光照贴图的情况下,在传统顶点灯光渲染中使用,以及在光照贴图使用 RGBM 编码的平台上使用(PC 和主机)。
VertexLM 在应用光照贴图的情况下,在传统顶点灯光渲染中使用,以及在光照贴图使用双 LDR 编码的平台上使用(移动平台)。
Meta 此 Pass 在常规渲染期间不使用,仅用于光照贴图烘焙或 EnlightenGeomerics 在 Unity 中用于 Enlighten 实时全局照明的照明系统。 更多信息
参见 术语表
实时 全局照明一组模拟直接和间接照明以提供逼真的照明效果的技术。
参见 术语表
。有关更多信息,请参见 光照贴图和着色器.

PassFlags 标签

在内置渲染管线中,使用 PassFlags Pass 标签来指定 Unity 向 Pass 提供哪些数据。

函数
OnlyDirectional 仅在内置渲染管线中有效,当渲染路径设置为前向,并且 Pass 的 LightMode 标签值为 ForwardBase 时。

Unity 仅向此 Pass 提供主要方向光和环境光/光探针数据。这意味着非重要灯光的 数据不会传递到顶点灯光或球谐函数着色器变量中。有关详细信息,请参见 前向渲染路径.

示例

Shader "Examples/ExamplePassFlag"
{
    SubShader
    {
        Pass
        {    
              Tags { "LightMode" = "ForwardBase" "PassFlags" = "OnlyDirectional" }
            
              // The rest of the code that defines the Pass goes here.
        }
    }
}

RequireOptions 标签

在内置渲染管线中,RequireOptions Pass 标签根据 项目设置一系列广泛的设置,允许您配置物理、音频、网络、图形、输入以及项目中许多其他领域的运行方式。 更多信息
参见 术语表
启用或禁用 Pass。

函数
SoftVegetation 仅在 QualitySettings-softVegetation 启用时渲染此 Pass。

其他资源

ShaderLab 参考中的 Name 指令
ShaderLab 参考中的着色器代码块