版本:2022.3
语言: 英语
ShaderLab:给Pass分配标签
ShaderLab:添加着色程序

ShaderLab:内置渲染管线中预定义的Pass标签

本页包含有关您可以使用内置 渲染管线一系列操作,它将场景内容转换为屏幕上的图像。Unity允许您选择预构建的渲染管线或编写自己的渲染管线。 更多信息
术语表 中查看
使用的预定义Pass标签的信息。

有关Pass标签的一般信息,包括LightMode标签简介,请参阅 ShaderLab:给Pass分配标签。有关通用渲染管线(URP)中的预定义Pass标签值,请参阅 URP Pass标签:LightMode

LightMode标签有效值

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

功能
Always 始终渲染,不应用任何光照。这是默认值。
ForwardBase 用于 前向渲染一种渲染路径,根据影响对象的光源,对每个对象进行一次或多次渲染。光线在前向渲染中被不同对待,取决于其设置和强度。 更多信息
术语表 中查看
;应用环境光、主方向光、顶点和SH光以及 光图一种预渲染的纹理,其中包含场景中静态对象上的光源效果。光图叠加在场景几何形状之上,以创建光照效果。 更多信息
术语表 中查看
ForwardAdd 用于前向渲染;应用逐像素光,每个光一个Pass。
Deferred 用于 延迟着色内置渲染管线中的一种渲染路径,对影响游戏对象的水平的提高没有限制。所有光源都按像素评估,这意味着它们都与法线贴图等正常交互。此外,所有光源都可以有cookie和阴影。 更多信息
术语表 中查看
;渲染G缓冲区。
ShadowCaster 将对象深度渲染到阴影图或深度纹理中。
MotionVectors 用于计算每个对象的运动向量。
Vertex 用于旧版顶点光照渲染,如果对象未光照图;应用所有顶点光。
VertexLMRGBM 用于旧版顶点光照渲染,如果对象已光照图,以及在RGBM编码的光图平台上(PC和游戏机)。
VertexLM 用于旧版顶点光照渲染,如果对象已光照图,以及在双LDR编码的光图平台上(移动平台)。
Meta 本通道在常规渲染期间未被使用,仅用于光照贴图烘烤或< span class="tooltip">< strong>EnlightenGeomerics开发的一套照明系统,在Unity中用于光照贴图和Enlighten实时全局光照。更多信息
术语表中查看
实时全局光照一组用于模拟直接和间接照明的技术,以提供逼真的光照效果。
术语表中查看
。有关更多信息,请参阅光照贴图和着色器

PassFlags标签

在自带的渲染管道中,使用< code>PassFlags通道标签来指定Unity提供给通道的数据。

有效值

功能
仅方向性 仅在自带的渲染管道中有效,当渲染路径设置为Forward,在具有< code>LightMode标签值为< code>ForwardBase的通道中。

Unity只为此通道提供主方向光和环境/光照探针数据。这意味着非重要灯光的数据不会传递到顶点光照或球谐函数着色器变量中。有关详细信息,请参阅< a href="RenderTech-ForwardRendering.html">Forward渲染路径。

PassFlag标签代码示例

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

RequireOptions标签

在自带的渲染管道中,< code>RequireOptions通道标签根据< span class="tooltip">项目设置一组广泛设置,允许您配置项目中物理、音频、网络、图形、输入和其他许多方面的行为。更多信息
术语表中查看
来启用或禁用一个通道。

有效值

功能
SoftVegetation 仅当QualitySettings-softVegetation启用时才渲染此通道。

示例

Shader "Examples/ExampleRequireOptions"
{
    SubShader
    {
        Pass
        {    
              Tags { "RequireOptions" = "SoftVegetation" }
            
              // The rest of the code that defines the Pass goes here.
        }
    }
}
ShaderLab:给Pass分配标签
ShaderLab:添加着色程序