Opengl无法正确进行深度测试

Opengl无法正确进行深度测试,opengl,depth-testing,opengl-2.0,Opengl,Depth Testing,Opengl 2.0,我正在开发一个非常简单的类似体素的游戏,但由于某些原因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_Q

我正在开发一个非常简单的类似体素的游戏,但由于某些原因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);
}
这是一个屏幕盖:

我尝试过禁用照明功能,但很难分辨出什么是最重要的。我尝试过禁用消隐,除了球体是由内而外渲染的,这让我觉得问题可能出在
glutSolidSphere
函数中,而不是我的代码。我正在使用OpenGL 2.3。

它被称为

glEnable(GL_DEPTH_TEST);
不仅仅是GL_DEPTH

它被称为

glEnable(GL_DEPTH_TEST);

不仅仅是GL_深度

您的
GL_版本
2.3
?真的吗?你的
glu版本是
2.3
?真正地