创建一个基本的AR体验
配置一个AR会话对象并使用SceneKit或SpriteKit来显示AR内容
概述
当你使用ARSSNView或ARSKView类,ARKit会自动处理创建AR体验中的基本需求:每个视图都显示了一个以实时相机视图作为背景并且渲染了一个你提供的2D或3D覆盖层来创建那个真实世界中的幻想内容。使用其中一个类,你需要配置你想要创建的AR体验的种类,并且为你的覆盖层内容选择位置和代表。
若使用自己的视图来创建AR体验,请看使用Metal来展示AR体验。
备注:
这篇文章覆盖了在XCode工程模板中的代码。想要查看完整示例代码,使用AR模板创建一个新的iOS工程,并且在内容技术弹出菜单中选择SceneKit或SpriteKit。
配置并运行AR会话
ARSCNView和ARSKView类都包含了一个在创建AR体验中负责运动追踪和图像处理的ARSession对象。可是,为了能够运行这个会话,你必须要提供一个会话配置。
ARWorldTrackingSessionConfiguration类提供了更高精度的运动追踪并且开放了一些特性来帮助你放置虚拟内容到真实世界的平面上。在世界追踪不可用的情况下,基本类ARSessionConfiguration提供了简单的运动追踪来许可较少的AR体验。为了允许一个AR会话,使用一个你指定的选项来创建一个会话配置对象,之后在你的ARSCNView或ARSKView实例的session对象上调用runWithConfiguration:options:方法。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// Create a session configuration
let configuration = ARWorldTrackingConfiguation()
configuration.planeDetection = .horizontal
// Run the view's session
sceneView.session.run(configuration)
}
注意
只有视图将要显示在屏幕上时再运行你的会话。
在你已经设置好你的会话对象后,在视图中使用SceneKit或SpriteKit来放置虚拟内容。
话题
下一步
使用SceneKit提供3D虚拟内容
在AR体验中,使用SceneKit添加逼真的3D对象
使用SpriteKit提供2D虚拟内容
在AR体验中,使用SpriteKit在3D空间中放置2D图片
另请参阅
基本视图
ARSCNView
在AR体验中,使用3D的SceneKit内容来增强相机视图的一种视图。
ARSKView
在AR体验中,使用2D的SpriteKit内容来增强相机视图的一种视图。