/ / Zファイティングにつながる3DシーンでのJavaFX深度テスト-javafx、javafx-8、javafx-3d

3dでのJavaFXの深さテストZ-ファイティングにつながるシーン - javafx、javafx-8、javafx-3d

「DTED位置データを取得し、基本的な等高線メッシュを作成するアプリを作成しました。深度テストを有効にすると、これはうまく機能し、地形のレンダリングだけで問題は発生しません。

私が遭遇した問題は、配置するときにテレインサーフェス上のオブジェクトボックス/球体の視覚的な破損を引き起こすZファイティングが多く発生します。 nearclip / farclipを変更する以外に、これを緩和する方法はありますか?

のニアクリップを使用してみました。1と5000のファークリップで、まだ多くのちらつきがあります。地形の幅は100k単位である可能性があるので、地形全体を一度に表示できるようにファークリップの高さを維持する必要があります。 FXの深度バッファに関連するすべての質問を完了しましたが、ニア/ファークリップ設定以外の緩和に役立つものはまだ見つかりませんでした。

回答:

回答№1は1

JavaFXでも同じ問題が発生しました。あなたの解決策は私にとってはうまくいきましたが、特に同じ問題を抱えているがAutodesk Mayaで誰かを見つけたので、なぜそうなったのか興味がありました。

もちろん、この背後にある理由は深さですバッファ精度。 zFar平面が遠ざかったり、zNear平面が近づくと、精度が失われすぎます。これは、zFarプレーンよりもzNearプレーンに大きく影響します。

良い説明は、khronos "OpenGL wikiにあります。 深度バッファーの精度

TL; DR:zNearプレーンは常に可能な限り遠くに、zFarプレーンは可能な限り近くに移動します。


回答№2の場合は0

何度もいじくり回した後、ファークリップを調整してもちらつきが減らないことがわかりました。ただし、nearclipを1に設定すると、実質的にちらつきのない500kのfarclipを使用できます。