glEnable(GL_DEPTH_TEST)不工作?

时间:2014-06-09 14:50:42

标签: opengl-es opengl-es-2.0 opengl-es-1.1

当我在opengl中启用灯光时,我突然发现深度测试无法正常工作。看起来有些物体在旋转后是透明的。从这个角度看,手柄应该是不可见的。

我在开始时使用glEnable(GL_DEPTH_TEST)。

我正在使用OpenGL ES 2.0

一切都可能出错?

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

enter image description here

2 个答案:

答案 0 :(得分:4)

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

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

编辑:

同时检查您是否实际从窗口API激活深度帧缓冲区。

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

答案 1 :(得分:0)

呼叫此:

gl.glDepthMask( true );

我花了一天时间解决这个问题:)