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的值,并且不管是多边形的正面还是背面都以相同的方式渲染。
分享到:
相关推荐
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...
//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_...
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_...
在openGL的glEnable()函数中使用GL_FOG函数来启用雾效果。示例程序绘制了5个红色球体,每个球体和观察点的距离各不相同。
此资源是演示程序,可以免费下载。 ---------------------------------------- 有很久都没有使用OpenGL了。一直都只是看书,一旦实践...glEnable( GL_BLEND ); glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
glEnable(GL_CULL_FACE); //开启剔除操作效果 glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); //使用质量最好的模式指定颜色和纹理坐标的插值质量 glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient); // ...
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); // ...
glEnable(GL_LIGHTING);//打开光照 glEnable(GL_LIGHT0);//打开第一个光源 glEnable(GL_DEPTH_TEST);//启动深度探测
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, ...
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-Depthtest 1. 深度测试 深度测试被启用时,将该...glEnable(GL_DEPTH_TEST); 片段的深度值没有通过测试的话,这个片段会被丢弃,因此我们需要清除深度缓冲。(顺便清除颜色缓冲) glClear(GL_COLOR_BUFFER_B
//第二个三角形glDisable(GL_POLYGON_STIPPLE);//关闭多 边形点画模式glFlush();//强制OpenGL命令序列在有限的时间内完成执行}intmain(){g lutInitDisplayMode(GLUT_SINGLE"GLUT_RGBA);//设置程序窗口的显示模式(单...
通过定义剪裁平面实现对三维物体的剪裁,所使用的函数是:GLdouble eqn[4] = {1.0, 0.0, 0.0, 0.0}; //截平面定义 glClipPlane (GL_CLIP_PLANE0, eqn);...glEnable (GL_CLIP_PLANE0); //开启截平面
glEnable(GL_LINE_STIPPLE); glLineStipple(GLint factor,GLushort pattern); 三角形面的绘制 GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN 四边形面的绘制 GL_QUADS GL_QUADS_STRIP 多边形面的绘制(GL_...
glEnable(GL_DEPTH_TEST); //初始化OpenGL glEnable(GL_DITHER); //抖动是激活的。 glShadeModel(GL_SMOOTH);//两点间颜色有过渡效果 } void main(int argc, char* argv[]) { glutInit(&argc;, argv); ...
当你使用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();
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 ...
glEnable( GL_CULL_FACE ); // 剔除不是正面的面 进行设定,也就是说,所有在摄像机看来是逆时针绘制的图形都无法显示。因此我不得不用同样的顶点绘制两个面。下面是相关的函数: void DrawInnerWall( Point3F& p1, ...