1

私はシンプルな iPhone OpenGL ES アプリを持っています。このアプリでは、テクスチャを使用してフルスクリーンの背景画像をレンダリングし、線を使用してその上に 3D 多面体を描画します。テクスチャは glDrawTexfOES を使用して表示されます。

問題は、背景の上に多面体を表示できないように見えることです。glDrawTexfOES 呼び出しで、1 未満の z 値を使用すると、背景画像は表示されますが、多面体は表示されません。z 値が 1 (またはそれ以上) の場合、多面体は表示されますが、背景画像は表示されません。

ブレンディングは有効になっていません。深度テストがオンになっています。デプスバッファー付属。多面体だけが描かれている場合、深度テストは機能しているようです。多面体はシンプルな線で描かれています。

z 値の動作は、おそらく多面体の深度バッファー値が 1 であることを示唆しています...?

背景画像と前景オブジェクトの両方を表示する方法の手がかりはありますか?

4

1 に答える 1

0

私の推測では、背景画像を描画しているときは深度マスクを無効にします。これにより、多面体が描画され、深度テストに失敗しないように、背景を置いたときに深度バッファーがそのまま残されます。

簡単なテストを行い、背景を縮小してから、多面体を拡大し、元のアルゴリズムを使用してレンダリングします。多面体が実際に深度テストに合格した場所だけでなく、背景がない場所でもジオメトリが表示されるはずです。

于 2010-10-12T03:50:33.133 に答える