在OpenGL中启用深度测试后,我的整个屏幕都是空白的(恢复为清晰的颜色) - 为什么?

时间:2011-12-14 04:25:18

标签: c++ opengl glut

在使用OpenGL和GLUT的C ++图形应用程序中,我想通过

启用深度测试
glEnable(GL_BLEND);
glEnable(GL_DEPTH_TEST);

然而,这两行代码清除了我的屏幕,现在只是清晰的颜色。我想知道为什么。

我应该有一些原始的固体球体和立方体。

2 个答案:

答案 0 :(得分:10)

听起来你已经忘记清除深度缓冲区,因此深度缓冲存储器中存在任何预先存在的垃圾,因此无法进行深度测试。尝试将GL_DEPTH_BUFFER_BIT添加到glClear()调用中,如下所示:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
祝你好运!

答案 1 :(得分:0)

确保在启用深度测试后,您还要在Z near和Z far值之间进行绘制。