【发布时间】:2014-07-30 03:29:49
【问题描述】:
当我在opengl es中启用照明时,我突然发现深度测试无法正常工作。经过一些旋转后,它看起来有些物体是透明的。从这个角度看手柄应该是不可见的。
我在开始时使用 glEnable(GL_DEPTH_TEST)。
我正在使用 OpenGL ES 2.0
有什么不对吗?
当我不使用灯光时,一切看起来都很好。
【问题讨论】:
标签: opengl-es opengl-es-2.0 opengl-es-1.1
当我在opengl es中启用照明时,我突然发现深度测试无法正常工作。经过一些旋转后,它看起来有些物体是透明的。从这个角度看手柄应该是不可见的。
我在开始时使用 glEnable(GL_DEPTH_TEST)。
我正在使用 OpenGL ES 2.0
有什么不对吗?
当我不使用灯光时,一切看起来都很好。
【问题讨论】:
标签: opengl-es opengl-es-2.0 opengl-es-1.1
您确定在渲染之前清除深度缓冲区吗?
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
编辑:
还要检查您是否真的从窗口 API 激活了深度帧缓冲区。
例如,如果您使用 GLUT,则在调用 glutInitDisplayMode 时,您必须提供 GLUT_DEPTH 作为参数。
【讨论】:
这样称呼:
gl.glDepthMask( true );
我花了一天时间解决了这个问题:)
【讨论】: