名称
glStencilOp- 设置正面和背面模板测试操作
glStencilOpSeparate - 设置前端和/或后端模板测试操作
C规范
void glStencilOp( GLenum sfail,
GLenum dpfail,
GLenum dppass);
void glStencilOpSeparate( GLenum face,
GLenum sfail,
GLenum dpfail,
GLenum dppass);
参数
face
指定是否更新前和/或后模板状态。三个符号常量有效:GL_FRONT,GL_BACK和GL_FRONT_AND_BACK。
sfail
指定模板测试失败时要执行的操作。接受八个符号常量:GL_KEEP,GL_ZERO,GL_REPLACE,GL_INCR,GL_INCR_WRAP,GL_DECR,GL_DECR_WRAP和GL_INVERT。初始值为GL_KEEP。
dpfail
指定模板测试通过时的模板操作,但深度测试失败。 dpfail接受与sfail相同的符号常量。初始值为GL_KEEP。
dppass
指定模板测试和深度测试通过时的模板操作,或模板测试通过时的模板操作,并且未启用深度缓冲或深度测试。 dppass接受与sfail相同的符号常量。初始值为GL_KEEP。
描述
与深度缓冲一样,模板测试可以在每个像素的基础上启用和禁用绘图。首先使用GL绘图基元绘制模板平面,然后使用模板平面渲染几何体和图像以屏蔽部分屏幕。 Stenciling通常用于多通道渲染算法以实现特