在使用OpenGL和GLUT的C ++图形应用程序中,我想通过
启用深度测试glEnable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
然而,这两行代码清除了我的屏幕,现在只是清晰的颜色。我想知道为什么。
我应该有一些原始的固体球体和立方体。
答案 0 :(得分:10)
听起来你已经忘记清除深度缓冲区,因此深度缓冲存储器中存在任何预先存在的垃圾,因此无法进行深度测试。尝试将GL_DEPTH_BUFFER_BIT添加到glClear()调用中,如下所示:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
祝你好运!
答案 1 :(得分:0)
确保在启用深度测试后,您还要在Z near和Z far值之间进行绘制。