`
xuela_net
  • 浏览: 497276 次
文章分类
社区版块
存档分类
最新评论

glEnable/glDisable(GL_CULL_FACE)与glCullFace()

 
阅读更多

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

分享到:
评论

相关推荐

    OopenGL习题讲解

    glEnable (GL_LIGHTING); glEnable (GL_LIGHT0); glEnable (GL_DEPTH_TEST); } /*调用GLUT函数,绘制一个球*/ void display ( void ) { glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glutSolidSphere (1.0...

    opengl橡皮筋

    //glEnable(GL_CULL_FACE); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_AUTO_NORMAL); glEnable(GL_NORMALIZE); glFrontFace(GL_CW); //glCullFace(GL_BACK); glMaterialf(GL_FRONT, GL_...

    openGL程序

    glEnable(GL_CULL_FACE); glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHTING); glLigntModelfv(GL_LIGHT_MODEL_AMBIENT,noLight); glLightfv(GL_LIGHTO,GL_AMBIENT,ambientLight); glLightfv(GL_LIGHTO,GL_...

    fog.rar_GL_FOG_glEnable

    在openGL的glEnable()函数中使用GL_FOG函数来启用雾效果。示例程序绘制了5个红色球体,每个球体和观察点的距离各不相同。

    OpenGL的Alpha混合(演示程序)

    此资源是演示程序,可以免费下载。 ---------------------------------------- 有很久都没有使用OpenGL了。一直都只是看书,一旦实践...glEnable( GL_BLEND ); glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );

    opengl的太阳系模型

    glEnable(GL_CULL_FACE); //开启剔除操作效果 glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); //使用质量最好的模式指定颜色和纹理坐标的插值质量 glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient); // ...

    gl_blend.zip_Destination_blending textures_gl blend_gl blend 例子

    opengl中的混合的例子,使用glEnable(GL_BLEND)和glBlendFunc(source, destination) 来控制混合的模式等

    基于粒子系统的火焰

    glEnable(GL_TEXTURE_2D); // This Will Clear The Background Color To Black glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // Enables Clearing Of The Depth Buffer glClearDepth(1.0); // ...

    OPENGL三维混合图形

    glEnable(GL_LIGHTING);//打开光照 glEnable(GL_LIGHT0);//打开第一个光源 glEnable(GL_DEPTH_TEST);//启动深度探测

    opengl 期末复习资料

    glDisable(GL_TEXTURE_2D); } void reshape(int w, int h) { glViewport(0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60.0, (GLfloat) w/(GLfloat) h, ...

    OpenGL图元重启基础绘制

    glEnable(GL_PRIMITIVE_RESTART_FIXED_INDEX); 1 2 Then you set up an index array where you insert a 0xffff value at every position you want to start a new polygon, and bind the index array as usual. ...

    高级OpenGL-深度测试

    OpenGL-Depthtest 1. 深度测试 深度测试被启用时,将该...glEnable(GL_DEPTH_TEST); 片段的深度值没有通过测试的话,这个片段会被丢弃,因此我们需要清除深度缓冲。(顺便清除颜色缓冲) glClear(GL_COLOR_BUFFER_B

    计算机图形学作业实验报告.doc

    //第二个三角形glDisable(GL_POLYGON_STIPPLE);//关闭多 边形点画模式glFlush();//强制OpenGL命令序列在有限的时间内完成执行}intmain(){g lutInitDisplayMode(GLUT_SINGLE"GLUT_RGBA);//设置程序窗口的显示模式(单...

    opengl中的剪裁变换

    通过定义剪裁平面实现对三维物体的剪裁,所使用的函数是:GLdouble eqn[4] = {1.0, 0.0, 0.0, 0.0}; //截平面定义 glClipPlane (GL_CLIP_PLANE0, eqn);...glEnable (GL_CLIP_PLANE0); //开启截平面

    计算机图形学实验报告.docx

    glEnable(GL_LINE_STIPPLE); glLineStipple(GLint factor,GLushort pattern); 三角形面的绘制 GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN 四边形面的绘制 GL_QUADS GL_QUADS_STRIP 多边形面的绘制(GL_...

    用opengl绘制一个旋转正方体.cpp

    glEnable(GL_DEPTH_TEST); //初始化OpenGL glEnable(GL_DITHER); //抖动是激活的。 glShadeModel(GL_SMOOTH);//两点间颜色有过渡效果 } void main(int argc, char* argv[]) { glutInit(&argc;, argv); ...

    TestWebGLStencil.html

    当你使用glEnable(GL_STENCIL_TEST)启用蒙板测试之后,蒙板函数用于确定一个颜色片段是应该丢弃还是保留(被绘制)。蒙板缓存区中的值与参考值ref进行比较,比较标准是func所指定的比较函数。参考值和蒙板缓存区的值...

    图形学立方体旋转程序

    立方体旋转程序 /* Rotating cube with color interpolation */ /* Demonstration of use of homogeneous coordinate ... glEnable(GL_DEPTH_TEST); /* Enable hidden-surface removal */ glutMainLoop();

    opengl 帮助文档

    In that case, enable automatic normalization of normals by calling glEnable with the argument GL_NORMALIZE. Copyright Copyright © 2003 Silicon Graphics, Inc. This document is licensed under the ...

    3D迷宫(源代码+演示程序)

    glEnable( GL_CULL_FACE ); // 剔除不是正面的面 进行设定,也就是说,所有在摄像机看来是逆时针绘制的图形都无法显示。因此我不得不用同样的顶点绘制两个面。下面是相关的函数: void DrawInnerWall( Point3F& p1, ...

Global site tag (gtag.js) - Google Analytics