Version: 2022.2
ShaderLab 命令:ZTest
ShaderLab 旧版功能

ShaderLab 命令:ZWrite

设置在渲染过程中是否更新深度缓冲区内容。通常,ZWrite 对不透明对象启用,对半透明对象禁用。

禁用 ZWrite 会导致不正确的深度排序。这种情况下,您需要在 CPU 上对几何体进行排序。

渲染管线兼容性

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

用法

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

签名 示例语法 功能
ZWrite [state] ZWrite Off 启用或禁用写入深度缓冲区。

有效参数值

参数 功能
状态 On 启用写入深度缓冲区。
Off 禁用写入深度缓冲区。

示例

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

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

        Pass
        {    
              // 为此通道禁用写入深度缓冲区
              ZWrite Off
            
              // 此处是定义通道的代码的其余部分。
        }
    }
}

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

Shader "Examples/CommandExample"
{
    SubShader
    {
         // 为此子着色器禁用写入深度缓冲区
         ZWrite Off

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

        Pass
        {    
              // 此处是定义通道的代码的其余部分。
        }
    }
}
ShaderLab 命令:ZTest
ShaderLab 旧版功能