Version: 2021.3
ShaderLab 命令:模板
ShaderLab 命令:GrabPass

ShaderLab 命令:UsePass

UsePass 命令插入来自另一个 Shader 对象的指定通道。可以使用此命令来减少着色器源文件中的代码重复。

有关在 ShaderLab 代码中向通道添加名称的信息,请参阅 ShaderLab:向通道添加名称

渲染管线兼容性

功能名称 内置渲染管线 通用渲染管线 (URP) 高清渲染管线 (HDRP) 自定义 SRP
UsePass

用法

签名 功能
UsePass "Shader object name/PASS NAME IN UPPERCASE" Inserts the named Pass from the named Shader object.

If the named Shader object contains more than one SubShader, Unity iterates over the SubShaders until it finds the first supported SubShader that contains a Pass with the given name. For information on how Unity determines whether a SubShader is supported, see Shader objects introduction.

If the SubShader contains more than one Pass with the same name, Unity returns the last Pass it finds.

If Unity does not find a matching Pass, it shows the error shader.

示例

此示例代码创建一个名为 NamedPass 的 Shader 对象,其中包含名为 ExampleNamedPass 的通道。

Shader "Examples/ContainsNamedPass"
{
    SubShader
    {
        Pass
        {    
              Name "ExampleNamedPass"
            
              // 此处是通道内容的其余部分。
        }
    }
}

此示例代码创建一个名为 UseNamedPass 的 Shader 对象,该对象使用上述示例代码中的指定通道。

Shader "Examples/UsesNamedPass"
{
    SubShader
    {
        UsePass "Examples/ContainsNamedPass/EXAMPLENAMEDPASS"
    }
}
ShaderLab 命令:模板
ShaderLab 命令:GrabPass
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961