ARKit 文档(4)-- 构建一个基础的 AR 体验

配置 ARSession,使用 SceneKitSpriteKit 显示 AR 内容。

当你使用 ARSCNView 或者 ARSKView 类时,ARKit 会自动管理创一个 AR 体验最基本的要求:从相机中获取实时画面作为背景,并将你提供的 2D 或者 3D 图层内容渲染在上面,从而达到一个内容就是存在于现实世界中的错觉。根据你要实现的 AR 体验类型(2D 或 3D),选择一个视图类进行处理,并提供你要显示的内容所需要的位置和模型。

如果要创建一个你自己的显示视图作为替代,请见 Displaying an AR Experience with Metal。

配置并运行 AR Session

不管是 ARSCNView 还是 ARSKView 类,都包含了一个 ARSession 对象,它管理着创建 AR 体验所需的运动追踪和图像处理。不过如果要让一个 session 跑起来的话,你还要选择一个 session configuration

你选择的 configuration 对象的类型决定了你创建的 AR 体验的风格和质量:

  • 在处理器为 A9及以上 的iOS设备上,子类 ARWorldTrackingSessionConfiguration 提供了一个高精度的运动追踪,并且会开启可以帮助你将虚拟内容放置于实世界平面中的相关特性。

  • 在其他支持 ARKit 的设备上,基类 ARSessionConfiguration 提供了一个基本的运动追踪,提供了一种稍微有点沉浸式的 AR 体验。

要让一个 AR session 运行起来,你需要从上述的两个选择中选择一个创建你需要的 session configuration 对象,然后通过 ARSCNViewARSKView 中持有的 session 对象调用 runWithConfiguration:options: 方法:

override func viewWillAppear(_ animated: Bool) {  
    super.viewWillAppear(animated)

    // Create a session configuration
    let configuration = ARWorldTrackingSessionConfiguration()
    configuration.planeDetection = .horizontal

    // Run the view's session
    sceneView.session.run(configuration)
}

注意! 只可以在视图将要显示(will display)在屏幕上时启用你的 session

然后,你就可以使用 SceneKitSpriteKit 在视图上放置虚拟内容了。

Show Comments