glCullFace,GL_CULL_FACE
2012-11-13 15:17 三戒1993 阅读(224) 评论(0) 编辑 收藏 举报
http://www.dreamingwish.com/dream-2012/glcullface.html
glCullFace:指定剔出操作的多边形面
C语言描述
void glCullFace(GLenum mode);
参数
mode 指定应剔除多边形的哪一个面,不是GL_FRONT就是GL_BACK。
说明
本函数可以禁用多边形正面或背面上的光照、阴影和颜色计算及操作,消除不必要的渲染计算是因为无论对象如何进行旋转或变换,都不会看到多边形的背面。用GL_CULL_FACE参数调用glEnable和glDisable可以启用或禁用剔除。
void glCullFace(GLenum mode);
参数
mode 指定应剔除多边形的哪一个面,不是GL_FRONT就是GL_BACK。
说明
本函数可以禁用多边形正面或背面上的光照、阴影和颜色计算及操作,消除不必要的渲染计算是因为无论对象如何进行旋转或变换,都不会看到多边形的背面。用GL_CULL_FACE参数调用glEnable和glDisable可以启用或禁用剔除。
Name
glCullFace — 指明多边形的前面或后面是否被剔除。
C Specification
void glCullFace( |
GLenum mode) ; |
Parameters
mode
-
指明多边形的前面或后面是否被剔除。允许的符号常量有:GL_FRONT,GL_BACK和GL_FRONT_AND_BACK。初始值为GL_BACK。
Description
glCullFace指明多边形的前面或后面是否被剔除(由参数mode指定)。要开启或禁止拣选功能,调用glEnable方法和glDisable方法并以GL_CULL_FACE为参数。剔除功能初始值为禁止。剔除功能影响到三角形,四边形,多边形和矩形(梦维:原文就是这样写的,不是病句 – -)。
glFrontFace指定了顺时针和逆时针绘出多边形,哪个是前面,哪个是背面。见glFrontFace
Notes
如果mode是GL_FRONT_AND_BACK,多边形不会被绘出,但是其他图元比如点、线会被绘出。
Errors
如果mode不是被允许的值,将会产生GL_INVALID_ENUM。
See Also
glEnalbe(GL_CULL_FACE) 开启剔除操作效果
glDisable(GL_CULL_FACE) 关闭剔除操作效果
剔除操作
1.glCullFace()参数包括GL_FRONT和GL_BACK。表示禁用多边形正面或者背面上的光照、阴影和颜色计算及操作,消除不必要的渲染计算。
例如某对象无论如何位置变化,我们都只能看到构成其组成的多边形的某一面时,可使用该函数。
2.glPolygonMode
简介
glPolygonMode函数用于控制多边形的显示方式。
原型是:void glPolygonMode(GLenum face,GLenum mode);
face这个参数确定显示模式将适用于物体的哪些部分,控制多边形的正面和背面的绘图模式:
GL_FRONT表示显示模式将适用于物体的前向面(也就是物体能看到的面)
GL_BACK表示显示模式将适用于物体的后向面(也就是物体上不能看到的面)
GL_FRONT_AND_BACK表示显示模式将适用于物体的所有面
mode这个参数确定选中的物体的面以何种方式显示(显示模式):
GL_POINT表示只显示顶点,多边形用点显示
GL_LINE表示显示线段,多边形用轮廓显示
GL_FILL表示显示面,多边形采用填充形式
例:
glPolygonMode(GL_FRONT, GL_LINE);表示物体的前向面用线段显示
需要特别注意的是OpenGL3.1只接受GL_FRONT_AND_BACK作为face的值,并且不管是多边形的正面还是背面都以相同的方式渲染。