用于控制增强现实体验的主要对象。
@interface ARSession : NSObject
ARSession 对象协调 ARKit 代表您执行的主要流程,以创建增强现实体验。 这些过程包括从设备的运动感应硬件读取数据、控制设备的内置摄像头以及对捕获的摄像头图像执行图像分析。 该会话综合所有这些结果,以在设备所在的真实世界空间和您对 AR 内容建模的虚拟空间之间建立对应关系。
创建会话
每个 AR 体验都需要一个 ARSession。如果您实现自定义渲染器,则您自己实例化会话。
let session = ARSession()
session.delegate = self
如果您使用标准渲染器之一(如 ARView、ARSCNView 或 ARSKView),则渲染器会为您创建一个会话对象。当您想与应用程序的会话进行交互时,您可以在应用程序的渲染器上访问它。
let session = myView.session
运行会话
运行会话需要配置。 ARConfiguration 的子类决定了 ARKit 如何跟踪设备相对于现实世界的位置和运动,从而决定了您创建的 AR 体验的种类。例如,ARWorldTrackingConfiguration 使您能够通过设备的后置摄像头增强用户对周围世界的看法。
配置和运行会话
- runWithConfiguration:options:
使用指定的配置和选项为会话启动 AR 处理。
- runWithConfiguration:
为具有指定配置的会话启动 AR 处理。
identifier
正在运行的会话的唯一标识符。
ARSessionRunOptions
更改 AR 会话配置时转换其当前状态的选项。
configuration
为会话定义运动和场景跟踪行为的对象。
- pause
暂停会话中的处理。
响应事件
delegate
您提供的对象,用于接收捕获的视频图像和跟踪信息,或响应会话状态的变化。
delegateQueue
会话调用委托方法的调度队列。
ARSessionDelegate
您可以实施的方法从 AR 会话接收捕获的视频帧图像和跟踪状态。
ARSessionObserver
您可以实施的方法来响应 AR 会话状态的变化。
管理锚点
- addAnchor:
添加要由会话跟踪的指定锚点。
- removeAnchor:
从会话跟踪中删除指定的锚点。
保存或共享状态
- getCurrentWorldMapWithCompletionHandler:
返回一个对象,该对象封装了世界跟踪会话的空间映射状态和一组锚点。
记录和回放 AR 会话数据:
在 Reality Composer 中录制 AR 会话并在您的 ARKit 应用程序中重播。
扫描 3D 对象
- createReferenceObjectWithTransform:center:extent:completionHandler:
从会话世界空间的指定区域创建参考对象(用于 3D 对象检测)。
更新世界原点
- setWorldOrigin:
使用指定的变换更改 AR 世界坐标空间的基础。
寻找真实世界的表面
从屏幕上的某个点投射光线以查找与真实世界表面的交点。
- raycast:
检查一次光线和真实世界表面之间的交叉点。
- trackedRaycast:updateHandler:
随着时间的推移重复光线投射查询,以通知您物理环境中更新的表面。
将本地坐标转换为地理坐标
- getGeoLocationForPoint:completionHandler:
将框架本地坐标系中的位置转换为纬度、经度和高度。
访问相机框架
currentFrame
活动摄像机源捕获的最新静止帧,包括 ARKit 对其的解释。
ARFrame
作为具有位置跟踪信息的会话的一部分捕获的视频图像。
- captureHighResolutionFrameWithCompletion:
请求包含高分辨率捕获图像的正常频率之外的帧。
管理协作
- updateWithCollaborationData:
使用其他用户收集的有关物理环境的信息更新您的会话。
ARCollaborationData
保存用户收集的有关物理环境的信息的对象。
提供会话
ARSessionProviding
提供会话的对象。
网友评论