Unity3D:ShaderLab 命令-ZClip

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

ShaderLab 命令:ZClip

设置 GPU 的深度剪辑模式,从而确定 GPU 如何处理近平面和远平面之外的片元。

将 GPU 的深度剪辑模式设置为钳位对于模板阴影渲染很有用;这意味着当几何体超出远平面时不需要特殊处理,从而减少渲染操作。但是,它可能会导致不正确的 Z 排序。

渲染管线兼容性

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

用法

此命令会更改渲染状态。在 Pass 代码块中使用它可为该通道设置渲染状态,或者在 SubShader 代码块中使用它可为该子着色器中的所有通道设置渲染状态。

签名示例语法功能
ZClip [enabled]ZClip True设置深度剪辑模式。

有效参数值

参数功能
enabledTrue将深度剪辑模式设置为剪辑。

这是默认设置。
False将深度剪辑模式设置为钳位。

比近平面更近的片元正好在近平面,而比远平面更远的片元正好在远平面。

示例

此示例代码演示在 Pass 代码块中使用此命令的语法。

Shader "Examples/CommandExample"
{
    SubShader
    {
         // 此处是定义子着色器的代码的其余部分。

        Pass
        {    
              // 为此通道将 GPU 的深度剪辑模式设置为钳位
              // 如果要渲染模板阴影,通常会这么做
              ZClip False
            
              // 此处是定义通道的代码的其余部分。
        }
    }
}

此示例代码演示在 SubShader 代码块中使用此命令的语法。

Shader "Examples/CommandExample"
{
    SubShader
    {
         // 为此子着色器将 GPU 的深度剪辑模式设置为钳位
         // 如果要渲染模板阴影,通常会这么做
         ZClip False

         // 此处是定义子着色器的代码的其余部分。

        Pass
        {    
              // 此处是定义通道的代码的其余部分。
        }
    }
}


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

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

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

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