0

アルファブレンディングによって実現された透過性を有効にしたテストアプリケーションがあります。このアプリケーションは、SlimDX を使用して C# で作成されています。しかし、アルファ ブレンディングが適用されているオブジェクトの 1 つで、奇妙な「三角形が見つからない」効果が発生します (以下を参照)。

ここに画像の説明を入力

オブジェクトはほぼ円柱です。

3D コンピュータ グラフィックスやアルファ ブレンディングの使用経験が豊富な人が正しい方向に向けてくれるのではないかと思ったので、この結果を理解して、できれば削除してください。

編集

順序に依存しないブレンディング シェーダーを使用しようとしましたが、同じ結果が得られました。深度テストに失敗したため、ピクセル/フラグメントが破棄されているように見えます。これは私には意味がありません。

4

1 に答える 1

1

順序に依存しないブレンディング関数を選択するか、ビュー軸に沿って三角形を並べ替える必要があります (これは不可能です)。理由はこちらをご覧ください。

編集:

問題は、Z バッファーが原因で、OpenGL が既に描画されたものの背後にあるピクセルを描画できないことです。一般的には便利なのですが、手前のものが半透明の場合、奥にあるものを見る必要があります。

正しい外観のジオメトリを取得するには:

  • 深度バッファを読み取り専用モードにします。
  • 次数に依存しないブレンド関数を選択します。
于 2011-10-14T13:55:55.537 に答える