我通过ARCore的HelloAR示例创建了一个用于播放动画的对象。然后他用手遮盖了Camera,并造成跟踪损失。 如果再次照亮该空间,则创建的对象将返回,但动画将从头开始。
如果在发生跟踪丢失后再次识别出空间,则有时会返回该对象,但不会返回。有区别的方法吗?
如果在出现跟踪丢失后再次识别出空间,为什么当对象返回时动画又重新开始?您要删除并重新创建对象吗?
答案 0 :(得分:1)
ARCore使用一种称为Visual Inertial Odometry的技术。它是一种结合了计算机视觉和传感器融合的混合技术。
所以VIO所做的是将从特征点(拐角,斑点,边缘等)提取的数据与从移动设备IMU单元获取的数据相结合。知道设备的位置在ARCore中至关重要。因为您是根据此信息(使用设备姿态进行三角测量)来估算每个可跟踪位置的。
另一方面,当您在房间中移动时,ARCore会构建一个稀疏的环境地图。因此,这些提取的特征点会根据置信度存储在内存中,并在以后用于定位设备。
最后,当失去跟踪时会发生什么情况,例如无法提取特征点,例如由于墙墙较长。当您无法提取特征点时,您无法本地化设备。因此,设备不知道它在上面提到的此稀疏图中的位置。有时您会恢复,是因为您返回了已扫描并保留在此稀疏地图中的位置。
现在提出您的问题:
您可以使用即时预览来测试这两个问题,并查看失去跟踪时锚点发生了什么。祝你好运!