该原创文章首发于微信公众号:字节流动
OpenGL ES 模板测试
模板测试与深度测试类似,主要作用是利用模板缓冲区(Stencil Buffer)所保存的模板值决定当前片段是否被丢弃,且发生于深度测试之前。
图片来源:https://learnopengl.com/Advanced-OpenGL/Stencil-testing
模板测试一般步骤:
- 启用模板测试,开启模板缓冲写入
glStencilMask(0xFF)
; - 执行渲染操作,更新模板缓冲区;
- 关闭模板缓冲写入
glStencilMask(0x00)
; - 执行渲染操作,利用模板缓冲区所保存的模板值确定是否丢弃特定片段。
启用模板测试 glEnable(GL_STENCIL_TEST);
, 清空模板缓冲区 glClear( GL_STENCIL_BUFFER_BIT);
。
控制模板缓冲区是否可以进行写入:
// 0xFF == 0b11111111