【问题标题】:Augmented Reality - Mapping GPS to OpenGL增强现实 - 将 GPS 映射到 OpenGL
【发布时间】:2011-01-12 09:36:12
【问题描述】:

我正在编写一个 Android AR 应用程序并让我的引擎工作,但它包含我似乎无法修复的奇怪行为。我在相机图像上覆盖了一个 OpenGL 表面,并相应地将 3D 对象放置在视图中。如果我使用虚拟数据来定位我的 AR 对象,即 LAT 10 LON 10 在 OpenGL 表面上变为 x=10 y=10,那么叠加效果就很好了。但是,如果我对我的 LAT 和 LON 使用直接 GPS 坐标(例如 LAT 12.34567890 LON 100.23456789),那么我所有的对象要么在它们的位置周围移动,要么根本不出现。我知道使用浮点数和 OpenGL 框架存在问题,但我一直在阅读,但仍然无法停止这种行为。有没有其他人有这个问题?我是否应该在我的 GPS 和 openGL 表面之间使用比例因子,如果是的话,什么值是好的?我尝试将我的 LAT 和 LON 缩放 1000000 以消除浮点数,但这并没有帮助,而且性能也很糟糕。

我非常接近让这个工作,任何帮助将不胜感激。

【问题讨论】:

    标签: android opengl-es augmented-reality


    【解决方案1】:

    找出你的原始坐标在哪个 1x1 或 0.5x0.5 度的“盒子”中,然后减去那个盒子,所以你的坐标现在是相对于“盒子”而不是整个世界的。

    所以 LAT 12.34567890 LON 100.23456789 在方框 (12,100) 中,坐标为 (0.34567890, 0.23456789)。您需要将 (0.34567890, 0.23456789) 传递给 OpenGL。

    从 +/-180.0 度范围内的浮点数中获得约 1m 的精度充其量是有点粗略,一旦你开始执行所有 OpenGL 的矩阵运算,事情就会开始非常糟糕。

    【讨论】:

    • 您好 genpfault 感谢您的回复。你让我从不同的角度思考。我开始认为渲染器把事情搞砸了,但后来我想起了黄金法则,“这不是他们的代码,这是我的”。在采取更有条理的方法后,我发现我正在使用的旋转值引入了抖动,因此我需要对其进行更多过滤。希望我快过去了,可以发布它......
    猜你喜欢
    • 2014-03-26
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    • 2012-09-21
    相关资源
    最近更新 更多