选择要增强的摄像头源
概述
ARKit可以调用iOS设备中的两个摄像头,并且可以选择增强任意一个。但是每次只能展示一个摄像头的内容给用户。
后置摄像头
在后置摄像头中,你可以使用ARKit中的ARWorldTrackingConfiguration配置,它用于在监视设备的位置和方向。
ARWorldTrackingConfiguration
声明方法如下。
class ARWorldTrackingConfiguration: ARConfiguration
该类使用六个自由度(6DOF)来跟踪设备的运动:三个旋转轴(滚动角roll,俯仰角pitch,偏航角yaw)和三个平移轴(x,y,z)。
这种跟踪可以创造沉浸式的AR体验:无论用户让手机怎么旋转或移动,一个虚拟的对象能够停留在现实世界中的同一个地方,给人的感觉就是那个虚拟物体本身就式现实世界中的物体。类似于下图所示。
该会话(WorldTracking)也会为应用程序提供几种识别和与真实世界场景元素进行交互的方法。
- planeDetection。该方法用于找到真实世界的水平或者垂直的表面,并将它们作为ARPlaneAnchor对象添加到会话当中。
- detectionImages。该方法用于识别和跟踪已知的2D图像的运动,并将它们作为ARImageAnchor对象添加到场景中。
- detectionObjects。该方法用于识别已知的3D对象,并将它们作为ARObjectAnchor对象添加到场景中。
- 使用ARFrame、ARView、ARSCNView或ARSKView上的光线投射函数,可以找到2D平面点对应的3D位姿。
前置摄像头
在前置摄像头中,你可以使用ARKit中的ARFaceTrackingConfiguration配置,它用于追踪人物的面部信息。
声明方法如下。
class ARFaceTrackingConfiguration : ARConfiguration
当使用ARKit检测人脸时,它会创建一个ARFaceAnchor对象,该对象提供人脸的位姿,方向,拓扑结构和描述面部表情的信息。
ARKit的面部追踪功能只适用与前置摄像头能够获取深度的情况下。
ARFaceTrackingConfiguration类不提供任何方法或属性,但是它继承了ARConfiguration的所有属性。此外,当你启用isLightEstimationEnabled设置时,将适用人脸作为光照探测器,用来提供方向或者环境光照的估计(ARDirectionalLightEstimate对象)
面部跟踪功能为你的应用程序提供了个人面部信息。如果你适用了ARKit的面部跟踪功能,那么你的应用必须包含一项隐私政策,为了向用户描述你打算如何适用面部的数据。
验证设备支持和用户权限
该部分可以移步苹果官网仔细阅读。