glEnable(GL_DEPTH_TEST) - 没有渲染

Jak*_* M. 17 opengl

在OpenGL中,我显示了一个简单的模型.当我启用深度缓冲区时,

glEnable(GL_CULL_FACE);
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
Run Code Online (Sandbox Code Playgroud)

一切都消失了.我读过这个 OpenGL常见问题解答,但它对我没有帮助.

我的角度设置为:angle=45deg,near=1,far=40,我把模型中(0,0,0),我把我的眼睛的(0,0,4).没有Z缓冲区,我可以看到模型.

可能有什么不对?

dat*_*olf 50

你确定清除了深度缓冲区吗?

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

  • 答对了!复活节快乐! (4认同)
  • 如果上述方法不起作用,请检查gluPerspective,glFrustum或glOrtho函数中的近平面.如果设置为0,则深度缓冲似乎不起作用. (2认同)

小智 6

如果其他答案不起作用,请尝试评论中提到的user886079

如果上述方法不起作用,请检查gluPerspective,glFrustum或glOrtho函数中的近平面.如果设置为0,则深度缓冲似乎不起作用.

我几乎尝试了一切,但无法解决重叠问题.我把近值0.0f.我将其更改为0.01f,结果现在是它需要的结果.