我可以保存ar数据以便重用吗?

问题描述 投票:1回答:2

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

arcore
2个回答
4
投票

为了保持虚拟对象,我们可能可以使用VPS(visual positioning service,尚未发布)来定位具有房间的设备。

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


0
投票

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

您所要做的就是将您的对象放在任何您想要的地方,然后返回到更多的Augmented Images,并将Augmented Images角落的位置保存到设备中的文本或二进制文件中。

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

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

我已经在每组中测试了4个点,并且考虑到我的锚被放置在没有任何Trackable的任意位置上,这是非常准确的。

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

© www.soinside.com 2019 - 2024. All rights reserved.