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