OpenGL:远处的物体出现在近处物体的顶部

时间:2016-10-04 15:02:30

标签: ios objective-c opengl-es glkit

我试图使用iOS GLKit组合一个快速演示,使用源CAD文件使用OpenGL渲染零售店地图。我能够在2D中渲染墙壁和过道,然后以编程方式添加一些人工深度来创建一系列立方体。当我自上而下时,所有这一切看起来都很好,但我注意到当我打开地板时(z值远低于过道和墙壁,其中一些物体实际上在地板下呈现:

aisles below the floor

...但是如果您旋转模型,您可以看到地板下面没有任何东西,而且有些过道在墙外呈现:

enter image description here

您可以在StoreMapGLKitViewController.m查看代码,这对我来说似乎很简单,但我确定我犯了某种OpenGL新手错误。

2 个答案:

答案 0 :(得分:0)

所以,当你弄乱Z值,z = 0的所有事情时,我想你仍然可以看到你的一些墙壁和过道,但它们也会挂起出了一点底部。只要你不关心它(它是一个演示,对吧),那么现在我应该没问题。

答案 1 :(得分:0)

结束深度缓冲区没有设置纠正,因此深度测试没有做任何事情。添加下面的代码修复了它。

GLKView *view = (GLKView *)self.view;
view.drawableDepthFormat = GLKViewDrawableDepthFormat24;