我可以保存 ar 数据以供重复使用吗?
Can I save ar data for reuse?
我的目标是将一个物体放置在房间的 arcore 平面上,然后将平面和物体的数据保存在文件中。应用程序退出并重新启动后,保存的对象可以从文件中加载,然后可以像上次一样显示在相同的位置。
要持久化虚拟对象,我们可能可以使用VPS(visual positioning service,尚未发布)用房间定位设备。
然而,在 ARCore 的开发者预览版中没有API实现这一点。
您可以使用增强图像在 ARCore 中保存锚点位置。
您所要做的就是将您的对象放置在您想要的任何位置返回 an/more Augmented Images
并保存 [=10] 的 角 的位置=] 到您设备中的文本或二进制文件中。
然后在下一个会话中,假设您使用了一个 Augmented Image
和 4 个点(图像的角),您加载这些位置并使用这两个组计算两个会话之间的 Transformation Matrix
每个会话中共有 4 个点。您之所以需要它,是因为 ARCore 的坐标系在每个会话中都会根据设备的初始位置和旋转而变化。
最后,您可以使用此转换矩阵计算新会话中锚点的位置和旋转。它将被放置在相同的物理位置,由于 Augmented Image
跟踪的准确性而导致误差范围。如果你使用更多的点,这个误差范围会相对较低。
I have tested this with 4 points in each group and it is quite accurate considering my anchors were placed on Arbitrary locations not attached to any Trackable
.
转换矩阵的计算可以参考this
我的目标是将一个物体放置在房间的 arcore 平面上,然后将平面和物体的数据保存在文件中。应用程序退出并重新启动后,保存的对象可以从文件中加载,然后可以像上次一样显示在相同的位置。
要持久化虚拟对象,我们可能可以使用VPS(visual positioning service,尚未发布)用房间定位设备。
然而,在 ARCore 的开发者预览版中没有API实现这一点。
您可以使用增强图像在 ARCore 中保存锚点位置。
您所要做的就是将您的对象放置在您想要的任何位置返回 an/more Augmented Images
并保存 [=10] 的 角 的位置=] 到您设备中的文本或二进制文件中。
然后在下一个会话中,假设您使用了一个 Augmented Image
和 4 个点(图像的角),您加载这些位置并使用这两个组计算两个会话之间的 Transformation Matrix
每个会话中共有 4 个点。您之所以需要它,是因为 ARCore 的坐标系在每个会话中都会根据设备的初始位置和旋转而变化。
最后,您可以使用此转换矩阵计算新会话中锚点的位置和旋转。它将被放置在相同的物理位置,由于 Augmented Image
跟踪的准确性而导致误差范围。如果你使用更多的点,这个误差范围会相对较低。
I have tested this with 4 points in each group and it is quite accurate considering my anchors were placed on Arbitrary locations not attached to any
Trackable
.
转换矩阵的计算可以参考this