glCullFace与glPolygonMode

来源:互联网 发布:python httplib 编辑:程序博客网 时间:2024/05/17 21:55

void glCullFace(GLenum mode); 

参数 mode  指定应剔除多边形的哪一个面,不是GL_FRONT就是GL_BACK。 
作用:本函数可以禁用多边形正面或背面上的光照、阴影和颜色计算及操作,消除不必要的渲染计算,因为无论对象如何进行旋转或变换,都不会看到多边形的背面。用GL_CULL_FACE参数调用glEnableglDisable可以启用或禁用剔除。

glEnalbe(GL_CULL_FACE) 开启剔除操作效果

glDisable(GL_CULL_FACE) 关闭剔除操作效果

 

void glPolygonMode(GLenum face,GLenum mode);

作用:glPolygonMode函数用于控制多边形的显示方式。

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的值,并且不管是多边形的正面还是背面都以相同的方式渲染。