【问题标题】:Can I save ar data for reuse?我可以保存 ar 数据以供重复使用吗?
【发布时间】:2025-12-24 03:35:06
【问题描述】:

我的目标是将一个对象放置在房间的弧形平面上,然后将平面和对象的数据保存在文件中。应用退出并重新启动后,可以从文件中加载已保存的对象,然后就可以像上次一样显示在同一位置。

【问题讨论】:

  • 你找到解决办法了吗?

标签: arcore


【解决方案1】:

要持久化虚拟对象,我们可能可以使用 VPS(visual positioning service,尚未发布)来定位设备与房间。

但是在 ARCore 的开发者预览版中没有 API 可以实现这一点。

【讨论】:

    【解决方案2】:

    您可以使用增强图像在 ARCore 中保存锚点位置。

    您所要做的就是将您的对象放在您想要的任何位置返回到一个/更多Augmented Images 并将您的Augmented Images 的位置保存到您的文本或二进制文件中设备。

    然后在下一个会话中,假设您使用了一个 Augmented Image 和 4 个点(图像的角落),您加载这些位置并使用这 2 组常见的 4 个点计算两个会话之间的 Transformation Matrix在每个会话中。之所以需要这个,是因为 ARCore 的坐标系在每个会话中都会根据设备的初始位置和旋转而变化。

    最后,您可以使用此转换矩阵计算新会话中锚点的位置和旋转。它将被放置在相同的物理位置,由于Augmented Image 跟踪的准确性引起的误差范围。如果你使用更多的点,这个误差范围会相对更低。

    我在每组中用 4 个点对此进行了测试,考虑到我的锚被放置在未连接到任何Trackable 的任意位置,这是非常准确的。

    为了计算转换矩阵你可以参考this

    【讨论】: