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

After enabling depth testing in OpenGL, my entire screen is blank (reverts to clear color) - why?

本文关键字:恢复 空白 清晰 为什么 颜色 屏幕 深度测试 启用 OpenGL 我的      更新时间:2023-10-16

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

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

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

我应该有几个原始的实心球体和立方体。

听起来好像您忘记清除深度缓冲区,因此由于深度缓冲区内存中预先存在的垃圾而无法通过深度测试。尝试将GL_DEPTH_BUFFER_BIT添加到您的glClear()调用中,如下所示:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

祝你好运!

确保在启用深度测试后,您还绘制了Z近和Z远值之间的值