当在另一个较小的对象Opengl后面时,“大对象”将消失



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

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();
}

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

除非你不关心性能,否则不要禁用人脸剔除。

相关内容

  • 没有找到相关文章

最新更新