glCullFace,GL_CULL_FACE

来源:互联网 发布:linux如何执行sql文件 编辑:程序博客网 时间:2024/05/18 02:47

http://www.dreamingwish.com/dream-2012/glcullface.html

glCullFace指定剔出操作的多边形面 

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

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。

Associated Gets

glIsEnabled 传入参数 GL_CULL_FACE

glGet 传入参数 GL_CULL_FACE_MODE

See Also

glEnable, glFrontFace


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