为什么我的opengl场景有深度缓冲问题?

时间:2014-10-19 18:09:43

标签: c++ opengl

我正在从文件中读取高度图,并使用三角形条渲染它。

高度图:

enter image description here

效果很好,这就是它的外观:

enter image description here

它看起来不错,但只是从这个方向来看。如果我稍微转动相机,就会开始发生这种情况:

enter image description here

好像我的深度缓冲区已损坏了。我已启用它,它可以很好地与其他几何体一起使用。

以前有人有这样的问题吗?我甚至不知道要搜索什么。谢谢!

编辑:

我的投影矩阵设置:

1.2062851 0.0 0.0 0.0

0.0 2.1445069 0.0 0.0

0.0 0.0 -1.0 -1.0

0.0 0.0 -0.2 0.0

_fieldOfView(50.0f),
_nearPlane(0.1f),
_farPlane(10000.0f),
_viewportAspectRatio(16.0f/9.0f)

1 个答案:

答案 0 :(得分:0)

谢谢大家的有益评论。我发现了这个问题,希望有这个问题的其他人会发现解决方案很有用。我必须在每个帧(glEnable(GL_DEPTH_TEST))之前重新启用深度缓冲,而不是在创建渲染器时重新启用一次。我的印象是这是一个全球状态,因此每次渲染时都不需要重置。

最终产品看起来像这样,没有深度缓冲问题:

enter image description here

无论如何,希望这有助于某人。