本文译自官方文档 ARSessionConfiguration。不足之处,请纠正。
ARSessionConfiguration 是 ARSession 的基本的配置,它只能捕捉到设备的方向,为了给用户更好的体验,在开发中。一般不建议用此配置,而是用其子类 ARWorld-TrackingSessionConfiguration。
一、简介
AR 配置中建立现实世界和虚拟世界的纽带,当用相机展示 AR 视图时,用户可以体验到虚拟世界和现实世界相互融合的视图。创建和维护这样的视图,需要去追踪手机设备的运动。ARSessionConfiguration 类跟踪设备运动的三个自由度(3自由度):具体来说,三个旋转的轴(滚动、俯仰和左右)。
有限的 ARSessionConfiguration 运动追踪,可能影响到 AR 的用户体验。虚拟的特征可以成为现实世界的一部分,当用户转动设备去看虚拟的特征的上面、下面或者是旁边。然而,ARSessionConfiguration 不能追踪到设备如下的运动:非常规的改变设备的位置打破了基于“增大化现实”技术的错觉,导致虚拟内容相对于现实世界出现漂移。例如,用户不能走动到虚拟对象的两侧和背部。另外 ARSessionConfiguration 不支持平面的侦测或者用户交互。
下图是 ARSessionConfiguration 支持追踪旋转运动,并不支持水平运动。
因为 ARSessionConfiguration 会影响 用户体验,请不要使用它来追踪设备运动,而是用ARWorldTrackingSessionConfiguration 来追踪设备(6个自由度,)运行,ARWorldTrackingSessionConfiguration 可以检测平面,可以与用户的交互。 当 ARWorldTrackingSessionConfiguration 不能使用时,请 ARSessionConfiguration。
二、API
1. 检查设备支持 isSupported
返回 Boolean 值,当前用户的设备是否支持会话配置。
2. 配置会话 worldAlignment
会话的对其方式,这里的对其指的是3D世界的坐标。追踪对其方式,这个决定会话的参考坐标系。其枚举有如下三个:
-
ARWorldAlignmentGravity 相机位置 vector (0, -1, 0)
-
ARWorldAlignmentGravityAndHeading 相机位置及方向. z :(0, 0, -1) ,x (-1,0,0),y(0,-1,0)的位置。
-
ARWorldAlignmentCamera
相机方向.
3. [ARWorldAlignment
](https://developer.apple.com/documentation/arkit/arworldalignment?language=objc) 其作用与 ARWorldAlignmentGravityAndHeading 相同
网友评论