使用 ARWorldMap,能解决使用者再次进入同一物理空间时的AR 场景恢复问题,也能在多人之间共桌AR 体验,但这种共享并不是实时的,在载入ARWorldMap 后,设备新检测到的环境信息和使用者所做操作不会实时共享,即在载入ARWorldMap后,用户A 所做的操作或者添加的虚拟物体不会在用户B的设备上体现。
为解决这个问题,ARKit 3. 0 就提出了协作 Session (Collaborative Session)的概念,协作 Session 利用Multipeer Connectivity 近距离通信或者其他网络通信方法,通过实时共享 ARAnchor 的方式达到 AR体验实时共享的目的。
ARWorldMap 通过地标(Landmark 也即是特征值信息)来恢复与更新用户姿态,ARWorldMap 也通过一系列的 ARAnchor 来连接虚实,并在 ARAnchor 下挂载虚拟物体。但在ARWorldMap 中,这些数据并不是实时更新的,即在ARWorldMap 生成之后用户新检测到的地标及所做的操作并不会共享,其他人也无法看到变更后的数据。在 ARWorldMap 之外用户新检测到的地标或者新建的 ARAnchor 并不会被共享,因此,AR WorldMap 只适用于一次性的数据共享,并不能做到实时交互共享。
协作 Session 的出现就是为了解决这个问题,协作 Session 可以实时地共享 AR体验,持续性地共享ARAnchor 及环境理解相关信息,利用 Multipeer Connectivity 近距离通信框架,所有用户都是平等的,没有主从的概念,因此,新用户可以随时加入,老用户也可以随时退出,这并不会影响其他人的体验&#