【发布时间】:2025-12-24 03:35:06
【问题描述】:
我的目标是将一个对象放置在房间的弧形平面上,然后将平面和对象的数据保存在文件中。应用退出并重新启动后,可以从文件中加载已保存的对象,然后就可以像上次一样显示在同一位置。
【问题讨论】:
-
你找到解决办法了吗?
标签: arcore
我的目标是将一个对象放置在房间的弧形平面上,然后将平面和对象的数据保存在文件中。应用退出并重新启动后,可以从文件中加载已保存的对象,然后就可以像上次一样显示在同一位置。
【问题讨论】:
标签: arcore
要持久化虚拟对象,我们可能可以使用 VPS(visual positioning service,尚未发布)来定位设备与房间。
但是在 ARCore 的开发者预览版中没有 API 可以实现这一点。
【讨论】:
您可以使用增强图像在 ARCore 中保存锚点位置。
您所要做的就是将您的对象放在您想要的任何位置返回到一个/更多Augmented Images 并将您的Augmented Images 的角 的位置保存到您的文本或二进制文件中设备。
然后在下一个会话中,假设您使用了一个 Augmented Image 和 4 个点(图像的角落),您加载这些位置并使用这 2 组常见的 4 个点计算两个会话之间的 Transformation Matrix在每个会话中。之所以需要这个,是因为 ARCore 的坐标系在每个会话中都会根据设备的初始位置和旋转而变化。
最后,您可以使用此转换矩阵计算新会话中锚点的位置和旋转。它将被放置在相同的物理位置,由于Augmented Image 跟踪的准确性引起的误差范围。如果你使用更多的点,这个误差范围会相对更低。
我在每组中用 4 个点对此进行了测试,考虑到我的锚被放置在未连接到任何
Trackable的任意位置,这是非常准确的。
为了计算转换矩阵你可以参考this
【讨论】: