4

XNAのツリーに問題があります。ツリーがある場合、葉以外の部分を透明にするためにアルファブレンディングを使用する必要がありますが、モデルの一部が正しく表示されないため、アルファブレンディングが失敗します。メッシュの位置を読み取って並べ替える可能性があるかどうか、または透明な非葉の部分を作成する他の方法があるかどうかを知りたいです。このツリーをあらゆる角度から見たいので、モデルでの並べ替えはおそらく機能しません。

4

2 に答える 2

1

3D 環境でのアルファ ブレンディングは、扱いにくい問題になる場合があります。Shawn Hargreaves は、数年前に主要な問題のほとんどに触れた記事を書きました ( Painter's Algorithmというタイトルのセクションでは、具体的にあなたの質問を扱います)。簡単に言えば、あなたが望むことを完璧に行うテクニックは存在しないので、問題は次のようになります。

アルファブレンディングではなくアルファテストを行うのが最も簡単な解決策かもしれません。これは、不透明なピクセルが表示されるか表示されないかのバイナリ テストであるため、これらのピクセルが描画される順序はほとんど関係ありません。これにより、ハード エッジが得られますが、テクスチャに十分な解像度があれば、それでもかなりきれいに見えます。World of Warcraft がこの手法を使用していることは知っていますし、Diablo III で見たのを覚えていると確信しています。

ビルトインを使用しAlphaTestEffectてこれを行うか、ピクセル シェーダーで自分で実装することができます。

于 2012-12-18T18:53:42.530 に答える
0

あなたが探しているのは、順序に依存しない透明度と呼ばれ、これは「デプスピーリング」と呼ばれる方法を使用して実現できます。XNAのReachプロファイルを使用しておらず、カスタムシェーダーを作成できる場合は、この手法を実装して、メッシュレベル情報を気にしたり、現在のフレーム/ビューに合わせて並べ替えたりすることなく、正しいブレンドを実現できます。

これがもう1つのDX9(ただし、XNAに簡単に適応)の実装です。

于 2012-12-18T19:33:20.580 に答える