欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

OpenGL关于glStencilFuncSeparate()和glStencilFunc()函数的区别讲解

时间:2021-05-05 15:36:38|栏目:Android代码|点击:

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.

其它的参数两个函数表示的含义相同。

总结

上一篇:Android开发之Android.mk模板的实例详解

栏    目:Android代码

下一篇:Android自定义View实现圆环进度条

本文标题:OpenGL关于glStencilFuncSeparate()和glStencilFunc()函数的区别讲解

本文地址:http://www.codeinn.net/misctech/115182.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有