转载请注明出处
ARSession类
- 这是一个单例, 是 ARKit 的核心类,用于控制设备摄像头,处理传感器数据,对捕获的图像进行分析等等
Overview
- 对ARSession的简单介绍,不做翻译, An ARSession object coordinates the major processes that ARKit performs on your behalf to create an augmented reality experience. These processes include reading data from the device's motion sensing hardware, controlling the device's built-in camera, and performing image analysis on captured camera images. The session synthesizes all of these results to establish a correspondence between the real-world space the device inhabits and a virtual space where you model AR content.
- 每一个使用ARKit创建的AR工程必须要有一个ARSession单例对象. 如果你使用
ARSCNView
或者ARSKView
来更容易的创建AR工程的一部分, 这个View已经包含了一个ARSession实例. 如果你使用自己编写的渲染器来渲染AR内容, 你必须实例化和持有一个ARSession对象 - 运行一个会话必须要有相关配置: 可以实例化
ARSessionConfiguration
或者它的子类ARWorldTrackingSessionConfiguration
, 这些类确定, 相对于现实世界, ARKit跟踪设备的位置和运动,从而影响您可以创建的基于"增强现实”技术的类型
Topics
-配置和运行Session
//run方法的声明:
//开始为session在指定的配置和选项下处理AR
//configuration 一个对象,定义了会话的运动和现场跟踪行为
//ARSession.RunOptions 这是一个结构体, 所以当使用系统默认的时候可以写个[], 当你改变它的配置的时候, 这个选项会影响怎么过渡一个AR会话的状态
func run(_ configuration: ARSessionConfiguration, options: ARSession.RunOptions = [])
//pause方法的声明:
func pause()
//代理
//代理方法可以实现接收视频帧图像捕获和跟踪状态的AR会话
//里面几个方法都是可选
var delegate: ARSessionDelegate?
//代理队列, 如果没有设置的话, 默认 主队列
var delegateQueue: DispatchQueue?
//实现里面的方法可以对AR会话的状态进行改变
protocol ARSessionObserver
-显示和影响AR内容
var currentFrame: ARFrame?
func add(anchor: ARAnchor)
func remove(anchor: ARAnchor)