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();
尝试禁用脸部剔除? – faffaffaff
辉煌。这工作。你想补充说,作为答案,所以我可以标记为正确 –
@JonathanDixon:禁用背面剔除只是缩小问题的第一步。固定多边形绕组使得最终处于一致状态(并且可以再次启用背面剔除),这是真正的解决方案。 – derhass