模板测试可以用来针对特殊的区域进行渲染控制,实现有趣的效果,例如绘制物体轮廓。在
使用模板测试的时候,一般的步骤如下:
- 启用模板测试,以便写入数值到模板缓冲中
- 渲染物体,根据渲染的物体将特定的数值写入到模板缓冲中
- 禁用模板缓冲写入
- 设置模板函数,根据于模板缓冲中的 数值比较结果,渲染特定区域
模板函数有两个:
glStencilFunc(GLenum func, GLint ref, GLuint mask)
glStencilOp(GLenum sfail, GLenum dpfail, GLenum dppass)
glStencilFunc(GLenum func, GLint ref, GLuint mask)
参数 | 取值 | 描述 |
func | GL_NEVER GL_LESS GL_LEQUAL GL_GREATER GL_GEQUAL GL_EQUAL GL_NOTEQUAL GL_ALWAYS |
|
rec | Reference Value, 用来与模板缓冲比较 | |
mask | 掩码,与参考值和储存的模板值在测试比较它们之前进行与(AND)运算。 |
glSten