glEnable(GL_DEPTH_TEST)不起作用?

Ada*_*Lee 2 opengl-es opengl-es-2.0 opengl-es-1.1

当我在室内启用照明时,突然发现深度测试无法正常工作。经过一些旋转后,看起来某些对象是透明的。从这个角度看手柄应该是不可见的。

我在一开始就使用glEnable(GL_DEPTH_TEST)。

我正在使用OpenGL ES 2.0

可能有什么问题吗?

当我不使用光时,一切看起来都很好。

在此处输入图片说明

Ora*_*eet 5

您确定在渲染之前清除了深度缓冲区吗?

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Run Code Online (Sandbox Code Playgroud)

编辑:

还要检查您是否实际上从窗口API中激活了深度帧缓冲区。

例如,如果使用GLUT,则在调用时glutInitDisplayMode必须提供GLUT_DEPTH作为参数。