2013-06-19 72 views
0

我想在openGL中创建一个房间,然而我有以下四边形但是wall2和wall4不显示。我猜这是与视角有关,如果我走出房间,我可以看到他们已经被渲染。OpenGL只有2个四边形显示

glColor3f(0.1f, 0.9f, 0.9f); 
//Wall1 
glBegin(GL_QUADS); 
glNormal3f(0,0,1); 
glVertex3f(-10,0,-10); 
glVertex3f(10,0,-10); 
glVertex3f(10,5,-10); 
glVertex3f(-10,5,-10); 
glEnd(); 

//Wall2 
glColor3f(1.0f, 1.0f, 1.0f); 
glBegin(GL_QUADS); 
glNormal3f(0,0,1); 
glVertex3f(-10,0, 10); 
glVertex3f(10,0, 10); 
glVertex3f(10,5, 10); 
glVertex3f(-10,5, 10); 
glEnd(); 

//Wall3 
glColor3f(0.4f, 0.9f, 0.1f); 
glBegin(GL_QUADS); 
glNormal3f(-1,0, 0); 
glVertex3f(10,0,-10); 
glVertex3f(10,0,10); 
glVertex3f(10,5,10); 
glVertex3f(10,5,-10); 
glEnd(); 

//Wall4 
glColor3f(0.1f, 0.2f, 0.2f); 
glBegin(GL_QUADS); 
glNormal3f(1, 0, 0); 
glVertex3f(-10,0,-10); 
glVertex3f(-10,0,10); 
glVertex3f(-10,5,10); 
glVertex3f(-10,5,-10); 
glEnd(); 
+0

尝试禁用脸部剔除? – faffaffaff

+1

辉煌。这工作。你想补充说,作为答案,所以我可以标记为正确 –

+1

@JonathanDixon:禁用背面剔除只是缩小问题的第一步。固定多边形绕组使得最终处于一致状态(并且可以再次启用背面剔除),这是真正的解决方案。 – derhass

回答