1

オブジェクトを描画するために正射投影法を使用しています。各オブジェクト項目は異なるバッファに追加され、数サイクルで描画されます。各オブジェクトに四角形のアウトラインがあり、その四角形を (異なる色で) 塗りつぶしているとします。だから私は最初にすべての塗りつぶしを描き、次にアウトラインを描いています。

写真に示すように、アウトラインがすべての塗りつぶしにかからないようにするために深度バッファーを使用していますここに画像の説明を入力

現在、各オブジェクトに別の描画アイテム (テキスト - ポイントなど) が含まれているという問題に直面しています。これは、この正方形よりも長くなる可能性があります。だから私は正方形の上にこの追加の描画をカットするためにステンシル バッファを使用しています。ただし、これを行う場合、深度バッファは考慮されません。1 つのテキスト項目を他の正方形の上に描画できることを意味します。以下に示すように。ここに画像の説明を入力

とにかくそれを実現するための\トリックはありますか?

4

1 に答える 1

0

ステンシル バッファーを正方形ごとに異なる値に設定できるはずです (8 ビットを超えるステンシル バッファーを取得できないため、正方形が 255 以下の場合)。深度テストに失敗したピクセルに対してステンシル値を構成しますKEEP。これにより、さらに前にあるが以前に描画されたクワッドによって書き込まれたステンシル値が保持されます。

これにより、各テキストを個別にクリッピングできます。

もう 1 つの方法は、深度バッファーのみを使用して、現在のクワッドのピクセル範囲をテキスト ピクセル シェーダーに渡し、余分なピクセルを破棄することです。これにより、状態の変更が少なくて済みます。

于 2014-07-13T10:56:21.953 に答える