格式
c++
#pragma stencil [ENABLE]描述
执行该命令用于设置是否启用 模板测试(Stencil Test)。
模板缓冲区(Stencil Buffer)为 帧缓冲区(Frame Buffer)中的每个 像素(Pixel)会存储一个 8 位整数的数据。执行片元着色之前 着色器(Shader)对于给定像素,渲染系统会将模板缓冲区中的当前值与给定参考值进行比较,这称为 模板测试(Stencil Test)。如果模板测试通过,渲染系统将执行深度测试。如果模板测试失败,渲染系统会跳过该像素的其余处理。这意味着您可以使用模板缓冲区作为遮罩来告诉渲染系统需要绘制哪些像素以及不绘制哪些像素。
不执行此命令默认不启用 模板测试(Stencil Test),也无法执行 stencil_args 命令。
字段
| 字段名 | 是否必须 | 字段值 | 描述 |
| [ENABLE] | 是 | true | 该 着色器(Shader)内容将会进行模板测试,能进而通过 stencil_args 命令实现更多显示效果。 |
on | 为了更符合主流的游戏着色器编辑习惯而添加的字段值,等价于 true。 | ||
false | 该 着色器(Shader)内容将不进行模板测试,减少每个像素点的判断,更节省渲染性能。 | ||
off | 为了更符合主流的游戏着色器编辑习惯而添加的字段值,等价于 false。 |
代码示例
c++
#pragma stencil on