您好,登录后才能下订单哦!
这篇文章将为大家详细讲解有关glStencilFuncSeparate()与glStencilFunc()函数在OpenGL中有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
glStencilFunc()
函数是OpenGL提供的对模板缓冲区进行控制的命令,这是OpenGL2.0之前使用的函数,其函数原型为
void glStencilFunc(GLenum func, GLint ref, GLuint mask).
func指定比较函数,它指定了测试通过的条件,其取值可以是:(为方便表示,参考值为refValue, 缓冲区值bufferValue)
GL_NEVER 总是不通过测试
GL_ALWAYS 总是通过测试
GL_LESS refValue < (bufferValue & mask)
GL_LEQUAL refValue < (bufferValue & mask)
GL_GREATER refValue > (bufferValue & mask)
GL_EQUAL refValue = (bufferValue & mask)
GL_NOTEQUAL refValue /= (bufferValue & mask)
在这里“通过”的意思指的是,我们在将图元绘制到帧缓冲区的时候在片段进行测试的时候是可以完全透过去的,否则的话这个片段就无法绘制到对应的颜色帧缓冲区,那么我们所绘制的内容也就显示不出来。通过这种控制方法来控制显示,其实这种操作在我们实际的生活中也是很常见的,例如给汽车喷漆,盖章(只会显示刻了的内容)。
ref指定参考值的大小。
mask指定掩码,只在掩码为1的位上进行比较,控制参考值的哪些位和缓冲区进行比较。
glStencilFuncSeparate()
函数OpenGL2.0以后新增的函数,其函数原型为
void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask).
和 glStencilFunc()
函数的不同是可以指定几何图形进行进行模板测试,位于多边形的哪个面。其枚举值可以是
GL_FRONT, GL_BACK, GL_FRONT_AND_BACK.
关于glStencilFuncSeparate()与glStencilFunc()函数在OpenGL中有什么区别就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。