设置 GPU 应该基于多边形相对于摄像机的方向剔除哪些多边形。
剔除是确定不绘制什么的过程。剔除提高了渲染效率,因为不会浪费 GPU 时间来绘制在最终图像中不可见的内容。
默认情况下,GPU 执行背面剔除;这意味着它不绘制背对观察者的多边形。一般来说,渲染工作量减少得越多越好;因此,只在必要时才应更改此设置。
功能名称 | 内置渲染管线 | 通用渲染管线 (URP) | 高清渲染管线 (HDRP) | 自定义 SRP |
---|---|---|---|---|
Cull | 是 | 是 | 是 | 是 |
此命令会更改渲染状态。在 Pass
代码块中使用它可为该通道设置渲染状态,或者在 SubShader
代码块中使用它可为该子着色器中的所有通道设置渲染状态。
签名 | 示例语法 | 功能 |
---|---|---|
Cull <state> |
Cull Back |
设置 GPU 应该基于多边形相对于摄像机的方向剔除哪些多边形。 |
参数 | 值 | 功能 |
---|---|---|
state | Back |
剔除背对摄像机的多边形。这称为背面剔除。 这是默认值。 |
Front |
剔除面向摄像机的多边形。这称为正面剔除。 使用它可翻转几何体。 |
|
Off |
不根据面朝的方向剔除多边形。 可用于实现特殊效果,如透明对象或双面墙。 |
Shader "Examples/CommandExample"
{
SubShader
{
// 此处是定义子着色器的代码的其余部分。
Pass
{
// 为此通道禁用剔除。
// 这通常用于实现特殊效果,如透明对象或双面墙。
Cull Off
// 此处是定义通道的代码的其余部分。
}
}
}
此示例代码演示在 SubShader 代码块中使用此命令的语法。
Shader "Examples/CommandExample"
{
SubShader
{
// 为此子着色器禁用剔除。
// 这通常用于实现特殊效果,如透明对象或双面墙。
Cull Off
// 此处是定义子着色器的代码的其余部分。
Pass
{
// 此处是定义通道的代码的其余部分。
}
}
}