我有这段代码
glColor3f(1, 0, 0);// red quad
glBegin(GL_QUADS);
glVertex3f(-1, 0, -0.1);
glVertex3f(1, 0, -0.1);
glVertex3f(1, 1, -0.1);
glVertex3f(-1, 1, -0.1);
glEnd();
glColor3f(0, 1, 0); //green quad
glBegin(GL_QUADS);
glVertex3f(-1, 0, -0.2);
glVertex3f(1, 0, -0.2);
glVertex3f(1, 1, -0.2);
glVertex3f(-1, 1, -0.2);
glEnd();
glutSwapBuffers();
使用默认投影矩阵,出现的是我的绿色四边形。
如果我们要查看负z(从1到-1),那么红色四边形后面的绿色四边形应该不是吗?
答案 0 :(得分:1)
兼容模式下的所有矩阵OpenGL以身份矩阵开始;他们不会应用任何转换。
在标准化设备坐标系中,+ Z进入窗口;你正在看+ Z.当然,矩阵和着色器可以改变这种情况。
还要确保启用了深度测试,并使用深度缓冲区创建窗口。
答案 1 :(得分:0)
如果红色四边形位于视锥体的近和远平面之外,则红色四边形将不会被显示,因为它会被剪掉。 More information