0

OpenGL ESでクワッドのバッチをレンダリング(テクスチャページの変更でレンダリング)し、それらをzオーダー(または逆)でレンダリングする方法があるかどうか疑問に思いました。

ZBufferは必要ないことに注意してください。必要なのは、zDepthの順序でクワッドをレンダリングすることだけです。

今、私は人々がそれらを順番にレンダリングすると言うことを知っています、まあ私はテクスチャページごとにグループ化してレンダリングします。ただし、ご想像のとおり、あるテクスチャページのスプライトを別のテクスチャページの前に表示する必要がある場合があります。テクスチャページの並べ替えでのみレンダリングする場合、これにより問題が発生します。

だから私はクワッドazオーダーを割り当てた場合、OpenGL ESはこれを尊重するのだろうかと思っていましたか?

どんな助けも大いに受けました。

乾杯リッチ

4

3 に答える 3

0

Zバッファ/デプスバッファなしでは目的を達成することはできません。あなたが求めているのは、デプスバッファを有効にせずに実行する作業です。

Zバッファが有効になっている場合、OpenGLはピクセルに描画するたびに..既存のピクセルのZ値をチェックし、それを描画するかどうかを決定します。

デプスバッファが有効になっていない場合、以前の既存のピクセルのz値に関係なく、単に上書きされます。

于 2009-12-09T18:49:26.167 に答える
0

はい、あなたがいる限り、あなたは間違いなくこれを行うことができます

glEnable(GL_DEPTH_TEST);

そしてもちろん、他の多くのことを正しくします。(必ず深度バッファーを作成し、ビュー錐台の範囲内にあるz値を使用してください...)

于 2009-12-05T17:03:38.967 に答える
0

OpenGLESはこれを行いません。指定した順序、つまりクワッドがドローコールからのものである順序を尊重します。クワッドをZで並べ替えてレンダリングする場合は、OpenGLESに送信する前に自分で並べ替える必要があります。

インデックスバッファを使用している場合は、明らかにインデックスだけを並べ替えることができます。ただし、実際のZを自分で計算する必要があります。

編集:テクスチャの懸念については、異なるテクスチャを同時に使用するには、テクスチャアトラス(つまり、異なるパーツで使用するさまざまなテクスチャを保持する単一のテクスチャ)の使用を検討する必要があることを追加する必要があります。

于 2009-12-05T18:40:59.567 に答える