当另一个较小的物体Opengl落后时,大物体会消失吗?

时间:2013-12-09 12:28:38

标签: c++ opengl graphics

我试图在立方体后面绘制一个大的多边形,使其看起来像地板。然而,当背景地板落在立方体后面时,它完全消失了。这是显示功能,包括我想要添加的背景和一个立方体边。

void display(){
//  Clear screen and Z-buffer
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);


// Reset transformations
 glLoadIdentity();


 //background floor
    glBegin(GL_POLYGON);   
  glColor3f(   0.5,  0.5, 0.5);
 glVertex3f(  1, -0.9, 1 );  // x-y-z right bottom  
 glVertex3f(  0.6,  0.5, 1 );      //right top
 glVertex3f( -0.6,  0.5, 1 );    //left top
 glVertex3f( -1, -0.9, 1 ); //left bottom
  glEnd();
 // Rotate when user changes rotate_x and rotate_y
 glRotatef( rotate_x, 1.0, 0.0, 0.0 );
  glRotatef( rotate_y, 0.0, 1.0, 0.0 );



  // FRONT side of cube
  glBegin(GL_POLYGON);

  glColor3f( 1.0, 0.5, 0.0 );
  glVertex3f(  0.05, -0.05, -0.05 );    
  glVertex3f(  0.05,  0.05, -0.05 );      
  glVertex3f( -0.05,  0.05, -0.05 );      
  glVertex3f( -0.05, -0.05, -0.05 );      
 //I have omitted the other 5 sides 
  glEnd();
  glFlush();
  glutSwapBuffers();

}

1 个答案:

答案 0 :(得分:1)

我怀疑你的poligon面朝外。 尝试使用glDisable(GL_CULL_FACE)禁用背面剔除。如果这可以交换顶点的顺序(应该是CCW或三角形,在多边形应该可见的一侧)。

除非您不关心表现,否则不要禁用脸部剔除。