2016-10-04 6 views
0

iOS GLKitを使用して簡単なデモを作成して、ソースCADファイルを使用してOpenGLを使用して小売店の地図をレンダリングしようとしています。壁と通路を2Dでレンダリングし、プログラムで人工的な深さを加えて一連の立方体を作成することができました。上を見下ろしてみるとこのすべてがうまく見えますが、フロアをオンにしたときに気づいたことがあります(通路のすぐ下にあるz値で、床の下に実際にレンダリングされているオブジェクトの一部が実際に表示されます)。OpenGL:近くのオブジェクトの上に表示される遠いオブジェクト

aisles below the floor

...しかし、あなたは、モデルを回転させる場合は、何も床下に実際にはありませんし、通路の一部が壁の外側をレンダリングしていることがわかります。

enter image description here

あなたがコードを表示することができますStoreMapGLKitViewController.mで、それはすべて私にとってかなりシンプルなようだ私はOpenGLのルーキーミスをしていると確信しています。

+0

はここで奇妙なクリッピング問題https://www.youtube.com/watch?v=1Vls6gwJvFQのビデオだ –

答えて

0

デプステストが何もしていないように、デプスバッファがセットアップされていないことを修正します。以下のコードを追加すると修正されました。

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

Z値を混乱させ、すべての物についてz = 0とすると、壁や通路の一部を見ることができても、少し。あなたがそれについて気にしない限り(そのデモ、右)、それは今はうまくいくはずです。

+0

うん、それは大丈夫ですが、私は、壁の上に通路を見ることができないようにする必要があり外部から。 –

関連する問題