2012-01-02 15 views
4

http://www.youtube.com/watch?v=gZNdfVwkttM - あなたが写真を見ることができない場合は、このビデオに記載されている問題のすべてを見ることができます。WPF 3D透明テクスチャ - クリッピング?

下のすべての画像の壁には、すべて半透明のPNGテクスチャがあります。各正方形の壁、床、天井のタイルは、別々のGeometryModel3Dです(私はそれがパフォーマンスには悪いことは知っていますが...)。中央の立方体の床と天井には、ジオメトリやテクスチャがありません。そのため、Window.Background(黒色)と同じ色です。しかし、透明性を持つImageBrushのテクスチャ、ColorにアルファチャンネルがあるMaterial.Color(例えばDiffuseMAterial.Color)、ImageBrushに不透明度があるMaterialとしてのImageBrush - 同じ問題を抱えています。 。

壁のすべてが2つの三角形で構成されています。明示的な法線はありません。法線がWPFによって自動的に計算されるように、三角形のインデックスを定義するためです。

http://imagepost.ru/images/i/ma/image00001.png

また、背面側から任意の裏材や余分な三角形を持っていません。

+ Zから-Zまでしか見ることはできません(青い四角に立って、赤い四角形を見て - それは2番目の画像です)。

しかし、あなたが後方(赤から青、最初の画像)を見ると、透明性はありません!

さて、私は黄色い四角形(3番目の絵)を見ていました。

そして、私はより歩いていきました。あなたは何が起こっているかを見ることができます(4から6までの絵)。

ジオメトリ構築エラーまたはテクスチャマッピングエラーまたは照明エラーはありません。それはある種のクリッピングです、私は推測しました!さらに、私の推測を証明するために興味のある写真7と8があります。

最後の画像は、Viewport3D(以前は黒)をホストしていたウィンドウの白い背景を示しており、クリッピングについての私の推測は - WPFはシーンのこの部分をペイントしていないので、

BUT!これがいろいろな見た目から起こる場合、+ Zから-Z(2番目の写真)までの見栄えがよく見えるのはなぜですか?

+0

追加画像THEMAを描画するときにのみ:http://imagepost.ru/images/i/ma/image00003.png HTTPを://imagepost.ru/images/i/ma/image00004.png http://imagepost.ru/images/i/ma/image00005.png http://imagepost.ru/images/i/ma/image00006 .png http://imagepost.ru/images/i/ma/image00007.png http://imagepost.ru/images/i/ma/image00008.png http://imagepost.ru/images/i /ma/image00009.png – user808128

+0

私はこれを見つけましたhttp://stackoverflow.com/questions/9430 67/wpf-3d-textures-with-alpha-channel/6331933#6331933 ZオーダーがこのWPFの動作の理由ですか?そして、これをどのようにエスケープするのですか? – user808128

+0

こんにちは、403のアクセスを拒否(禁止)すべての画像で取得します。また、私があなたの場合は、管理者があなたに投票する前に誓いを取り除く答えを編集します。 –

答えて

3

視点からの距離に基づいて三角形を並べ替える必要があります。それだけで、wpfは透明なテクスチャをブレンドできます。 DirectXが互いの上に三角形をブレンドすることができますが、後ろから前へ

http://www.ericsink.com/wpf3d/2_Transparency.html

+0

ありがとうございます。 – user808128

+0

視点から遠い順に透明なモデルを並べ替えるだけで十分です。少なくとも私が理解したように。 – user808128

+0

いいえ、透明な三角形が不透明な三角形の前に表示されているときはありません。 –

関連する問題