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

时间:2017-09-19 15:14:04

标签: arcore

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

所有您需要做的就是将对象放回任何位置{/ {1}},然后将Augmented Images的位置保存为文本或设备中的二进制文件。

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

最后,您可以使用此转换矩阵来计算新会话中锚点的位置和旋转。它将被放置在相同的物理位置,并且由于Transformation Matrix跟踪的准确性而导致错误余量。如果使用更多的点,则该误差幅度将相对较低。

  

我已经在每个组中用4点进行了测试,考虑到我的锚被放置在没有附着任何Augmented Image的任意位置上,这是非常准确的。

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