Unity3D:ShaderLab 命令-UsePass

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

ShaderLab 命令:UsePass

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

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

渲染管线兼容性

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

用法

签名功能
UsePass "Shader object name/PASS NAME IN UPPERCASE"从命名着色器对象插入命名通道。

如果命名的着色器对象包含多个子着色器,Unity 将遍历子着色器,直到找到第一个受支持的子着色器,其中包含具有给定名称的通道。有关 Unity 如何确定是否支持子着色器的信息,请参阅着色器对象简介

如果子着色器包含多个同名通道,Unity 将返回找到的最后一个通道。

如果 Unity 找不到匹配的通道,则会显示错误着色器

示例

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

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

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

Shader "Examples/UsesNamedPass"
{
    SubShader
    {
        UsePass "Examples/ContainsNamedPass/EXAMPLENAMEDPASS"
    }
}

3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D:ShaderLab 命令-模板 (mvrlink.com)

下一篇:Unity3D:ShaderLab 命令-GrabPass (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号