设置 GPU 的深度剪辑模式,从而确定 GPU 如何处理近平面和远平面之外的片元。
将 GPU 的深度剪辑模式设置为钳位对于模板阴影渲染很有用;这意味着当几何体超出远平面时不需要特殊处理,从而减少渲染操作。但是,它可能会导致不正确的 Z 排序。
功能名称 | 内置渲染管线 | 通用渲染管线 (URP) | 高清渲染管线 (HDRP) | 自定义 SRP |
---|---|---|---|---|
ZClip | 是 | 是 | 是 | 是 |
此命令会更改渲染状态。在 Pass
代码块中使用它可为该通道设置渲染状态,或者在 SubShader
代码块中使用它可为该子着色器中的所有通道设置渲染状态。
签名 | 示例语法 | 功能 |
---|---|---|
ZClip [enabled] | ZClip True | 设置深度剪辑模式。 |
参数 | 值 | 功能 |
---|---|---|
enabled | True | 将深度剪辑模式设置为剪辑。 这是默认设置。 |
False | 将深度剪辑模式设置为钳位。 比近平面更近的片元正好在近平面,而比远平面更远的片元正好在远平面。 |
此示例代码演示在 Pass 代码块中使用此命令的语法。
Shader "Examples/CommandExample"
{
SubShader
{
// 此处是定义子着色器的代码的其余部分。
Pass
{
// 为此通道将 GPU 的深度剪辑模式设置为钳位
// 如果要渲染模板阴影,通常会这么做
ZClip False
// 此处是定义通道的代码的其余部分。
}
}
}
此示例代码演示在 SubShader 代码块中使用此命令的语法。
Shader "Examples/CommandExample"
{
SubShader
{
// 为此子着色器将 GPU 的深度剪辑模式设置为钳位
// 如果要渲染模板阴影,通常会这么做
ZClip False
// 此处是定义子着色器的代码的其余部分。
Pass
{
// 此处是定义通道的代码的其余部分。
}
}
}