名称
glStencilFunc - 设置模板测试的前后功能和参考值
glStencilFuncSeparate - 设置模板测试的前端和/或后端功能和参考值
C规范
void glStencilFunc( GLenum func,
GLint ref,
GLuint mask);
void glStencilFuncSeparate( GLenum face,
GLenum func,
GLint ref,
GLuint mask);
参数
face
指定是否更新前和/或后模板状态。三个符号常量有效:GL_FRONT,GL_BACK和GL_FRONT_AND_BACK。
func
指定测试功能。八个符号常量有效:GL_NEVER,GL_LESS,GL_LEQUAL,GL_GREATER,GL_GEQUAL,GL_EQUAL,GL_NOTEQUAL和GL_ALWAYS。初始值为GL_ALWAYS。
ref
指定模板测试的参考值。 ref被截断到[0,2^n - 1]的范围,其中n是模板缓冲器中的位平面数。初始值为0。
mask
指定在测试完成时与参考值和存储的模板值进行AND运算的掩码。初始值全是1。
描述
与深度缓冲一样,模板测试可以在每个像素的基础上启用和禁用绘图。首先使用GL绘图基元绘制模板平面,然后使用模板平面渲染几何体和图像以屏蔽部分屏幕。 Stenciling通常用于多通道渲染算法以实现特殊效果,例如贴花,轮廓和构造性实体几何渲染。
模板测试基于参考值和模板缓冲器中的值之间的比较结果有条件地