Я работаю над действительно простой версией, похожей на игру, но по какой-то причине OpenGL не проверяет глубину.Не удалось правильно проверить глубину теста
Вот соответствующий код:
//Render function:
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(2.5, 2.5, -5.0);
glColor3f(1.0, 0.5, 0.2);
glBegin(GL_QUADS);
int i, j, k;
for (i=0; i<4; i++) {
for (j=0; j<4; j++) {
for (k=0; k<4; k++) {
glPushMatrix();
glTranslatef(-(float)i, -(float)j, -(float)k);
glutSolidSphere(0.2, 32, 32);
glPopMatrix();
}
}
}
glEnd();
glutSwapBuffers();
}
//Set the initial state of OpenGL:
void initGL() {
glEnable(GL_DEPTH);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_CULL_FACE);
glClearColor(0.0, 0.0, 0.0, 1.0);
}
Убедился, чтобы включить это окно initilization:
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
Вот ScreenCap:
Я попытался отключить функции освещения, но тогда трудно сказать, что в любом случае. Я попытался отключить отбраковку, ничего, кроме того, что сферы выдаются наизнанку, что заставляет меня думать, что, возможно, проблема в функции glutSolidSphere
, а не в моем коде. Я использую OpenGL 2.3.
Ваш 'GL_VERSION' является' 2.3'? В самом деле? – genpfault