0

有人可以向我解释为什么下面的代码应该创建尺寸为(lx,ly,lz)的长方体的前壁和底壁:

    // front
    gl.glBegin(GL2.GL_QUADS);
    gl.glNormal3d(0, 0, 1);
    gl.glVertex3d(0, ly, lz);
    gl.glVertex3d(0, 0, lz);
    gl.glVertex3d(lx, 0, lz);
    gl.glVertex3d(lx, ly, lz);
    gl.glEnd();
    // bottom
    gl.glBegin(GL2.GL_QUADS);
    gl.glNormal3d(0, -1, 0);
    gl.glVertex3d(0, 0, lz);
    gl.glVertex3d(0, 0, 0);
    gl.glVertex3d(lx, 0, 0);
    gl.glVertex3d(lx, 0, lz);
    gl.glEnd();

呈现如下内容:

无效的长方体

为什么透过前墙可以看到底墙?我已经检查了 1000 次,并且顶点CCW 顺序排列。他们是对的?...

4

1 回答 1

3

看起来您没有禁​​用深度缓冲区或深度测试。长方体也有 6 个面,而您的代码仅呈现两个。

于 2013-05-03T17:53:20.410 回答