WPF で 3D グローブ コントロールを作成しています。
ほとんどの場合うまく機能しますが、近すぎる (たとえば 10 メートル以下) から山を見ると、「ぐらつき」ます (つまり、カメラのすべての小さな動きが山のモデルの頂点を変更するため、そのように見えます)。ゼリーのように。)
近平面と遠平面で 0.001 から 5 の範囲を指定して、遠平面で 100 から 1000000 と正の無限大を指定してみましたが、役に立ちませんでした。
また、モデルをそのサイズの 1/10 から 10 倍にスケーリングし、ECEF に対する Lat/Long/Alt の結果をセンチメートル、メートル、および 10 メートルの単位に丸めることも試みました。
何も役に立たず、まだぐらついているように見えます (ただし、10 メートル単位に丸めると役に立ちます。この場合、ぐらつきは非常にまれですが、モデルが大きく変形して使用できなくなります)。
これは主に精度の問題だと思います。精度を上げる方法や、それを修正する方法についての他のアイデアはありますか?
イタイ。
更新:アーティファクトを示すビデオ を追加しました。
解決済み World Wing でのモデルの構築にも同じ問題があることがわかりました。ここで質問して回答しました。
私が疑ったように、一般的に問題は精度の問題でした。それを解決する方法は、実際のカメラを原点 (0,0,0) に保ちながら回転させ、すべてのタイルを反対方向に移動することでした。
各タイルを生成するとき、タイルの各頂点からタイルの XYZ 中心を引くので、最終的なタイルは (0,0,0) の周りに構築されます。
タイルGeometryModel3D
で平行移動変換を設定して、正しい位置に配置します。