概述
ARSCNView一种显示AR体验的视图,它通过3D SceneKit内容增强了相机视图。
ARSCNView类提供最方便的方法来创建增强现实体验视图,视图融合了设备摄像头拍摄的现实世界和虚拟3D内容。当你运行视图提供的ARSession对象:
- 视图自动将设备摄像头摄取的视频渲染成场景的背景;
- 视图的SceneKit场景世界的坐标系直接反映到AR世界的坐标系,AR世界的坐标系就是session configuration创建的;
- 视图自动移动它的SceneKit相机,来匹配现实世界设备的移动;
因为ARKit自动匹配虚拟场景空间和现实世界,在现实世界中放置一个虚拟对象只需正确地设置该对象SceneKit的位置就行了。(具体的请到Providing 3D Virtual Content with SceneKit查看)
你不一定需要使用ARAnchor类来跟踪对象在场景中的位置,可以使用ARSCNViewDelegate的方法来跟踪,你可以添加内容到被ARKit检测到的任何anchor(锚点)
主题
第一步
使用SceneKit添加3D对象到AR体验
var session: ARSession
AR session为视图内容管理运动跟踪和相机图像处理
var scene: SCNScene
SceneKit场景显示在视图中
响应AR更新
var delegate: ARSCNViewDelegate?
提供了调节视图的AR场景信息同步的方法
protocol ARSCNViewDelegate
你可以实现ARSCNViewDelegate的方法来调节视图的AR场景信息同步
映射内容到现实世界的位置
func anchor(for: SCNNode)
返回关联了特定场景节点的AR锚点
func node(for: ARAnchor)
返回关联了特定场景锚点的AR节点
管理场景灯光
var automaticallyUpdatesLighting: Bool
一个布尔值,表示是否创建和更新视图场景中的灯光
调试AR显示
struct ARSCNDebugOptions
选项值,绘制覆盖内容帮助调试场景视图中AR轨迹
关系
继承自 SCNView
遵循