2016-12-12 10 views
0

私は非常に大きいだけでなく、小さな3Dオブジェクトを同時に含む3D-WPFアプリケーションで作業しています。 (衛星シミュレーション)WPFポリゴンが消えて、ちらつき、Z戦闘?

問題

の根本であるように思われ、私はFarPlaneDistance(ファクター10^9倍小さい)よりもはるかに低い値にNearPlaneDistanceを設定する必要があり、それらを同時に表示するには

私はいくつかのポリゴンが特定のカメラ設定(ルックアライメントなど)で消える(たとえば描画されない)という問題を持っています - >カメラが動いたときにちらつきがあります。 (Example Picture of an MWE i codedただ一つ本当に大きな立方体とし、非常に小さな1)私は、これはZ-fightingによって引き起こされるが、時には全体のオブジェクトが消えるので、私はわからない、とオブジェクトModelVisual3Dの間には大きな違いもある疑い

変形されているかどうかはわかりません。

NearとFarPlaneDistancesのさまざまな組み合わせを試しましたが、常にいくつかの問題があります。

zバッファの精度を上げたり、対数にする方法はありますか?

私はウィキペディアは距離について浮気(距離をシミュレートするために、オブジェクト小さくする)をお勧め知っているが、私はそれに入る前に、思った私はここに頼む:)

+0

それはz戦闘の問題であるかもしれないが、あなたの近くの飛行機と遠い飛行機がはるかに離れているという複雑な問題を抱えているようにも思える。私はあなたがzバッファの精度を上げることはできないと思っています。他の解決策は、あなたの大きな三角形を小さなものに分割して、シーン内のすべての三角形がほぼ同じサイズになるようにすることです。 – ChrisF

+0

多かれ少なかれ同じサイズがどういう意味ですか?等しいサイズであるために、惑星は約5×10^18ポリゴンで作られる必要があります。 – Cthaeh

+0

それはそうした欠点です:)あなたは惑星ポリゴンを小さくすることができますが、小さくはできません。それは問題を軽減するが、排除するものではない。 – ChrisF

答えて

0

これは、Zファイティングおそらくだ原因でエラーを丸め浮動小数点へそれらの高いサイズ。浮動小数点数が大きくなるほど、精度が低下します。

浮動小数点精度を高めるために、すべてをスケールダウンしてみることができます。これは、カメラ、位置、エンティティの動きなど、一致するようにすべてをスケールする限り、シミュレーションやビジュアルには影響しないはずです。

+0

私は1,2,3桁のスケールダウンを試みましたが、何の違いもありませんでした。 – Cthaeh

関連する問題