当我在opengl中启用灯光时,我突然发现深度测试无法正常工作。看起来有些物体在旋转后是透明的。从这个角度看,手柄应该是不可见的。
我在开始时使用glEnable(GL_DEPTH_TEST)。
我正在使用OpenGL ES 2.0
一切都可能出错?
当我不使用光线时,一切看起来都很好。
答案 0 :(得分:4)
你确定在渲染之前清除了深度缓冲区吗?
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
编辑:
同时检查您是否实际从窗口API激活深度帧缓冲区。
例如,如果您使用GLUT,则在致电glutInitDisplayMode
时,您必须提供GLUT_DEPTH
作为参数。
答案 1 :(得分:0)
呼叫此:
gl.glDepthMask( true );
我花了一天时间解决这个问题:)