1

我正在 WPF 中编写一个 3D 地球控件。

大部分效果都很好,但是当我从太近(比如 10 米或更短)看一座山时,它会变得“摇摆不定”(意思是 - 相机的每一个微小移动都会改变山模型的顶点,所以看起来像果冻一样。)

我尝试在近平面上指定范围从 0.001 到 5 的近平面和远平面,在远平面上指定范围从 100 到 1000000 甚至正无穷大,但没有帮助。

我还尝试将模型从其大小的 1/10 缩放到其大小的 10 倍,甚至将 Lat/Long/Alt 的结果舍入到 ECEF 到厘米、米和 10 米单位。

没有任何帮助,它看起来仍然摇摆不定(尽管四舍五入到 10 米单位确实有帮助,在这种情况下摇摆非常罕见,但它会使模型变形,以至于无法使用)。

我想这主要是一个精度问题。知道如何提高精度或任何其他解决方法的想法吗?

伊泰。

更新: 我添加了一个视频来演示这个工件。

已解决 我发现在 World Wing 中构建模型存在同样的问题,在这里询问和回答。

通常,正如我所怀疑的那样,问题是精度问题。解决这个问题的方法是将实际相机保持在原点 (0,0,0),同时允许它旋转,并沿相反方向移动所有图块。

在生成每个图块时,我从图块的每个顶点中减去图块的 XYZ 中心,因此最终图块围绕 (0,0,0) 构建。

在图块中GeometryModel3D,我设置了一个平移变换,以便将其放置在正确的位置。

4

1 回答 1

1

我发现在 World Wing 中构建模型也存在同样的问题,在这里提问和回答。

通常,正如我所怀疑的那样,问题是精度问题。解决这个问题的方法是将实际相机保持在原点 (0,0,0),同时允许它旋转,并沿相反方向移动所有图块。

在生成每个图块时,我从图块的每个顶点中减去图块的 XYZ 中心,因此最终图块围绕 (0,0,0) 构建。

在图块中GeometryModel3D,我设置了一个平移变换,以便将其放置在正确的位置。

于 2011-09-01T09:22:05.737 回答