Discover ARKit 6
Spatial Computing 进阶 20m

探索 ARKit 6

Discover ARKit 6

2022年6月6日

在 Apple 官方观看视频

一句话判断

4K 视频、高分辨率拍照和 HDR 模式——ARKit 6 把 AR 相机的画质拉到了专业级别,影视制作和摄影测量是最大受益者。

这场 Session 讲了什么

ARKit 6 带来了多项相机和追踪能力的增强:

4K 视频模式:跳过 binning(像素合并)步骤,直接输出 3840x2160 分辨率的 AR 视频流。帧率从 60fps 降到 30fps,但像素量翻倍。支持 iPhone 11 及更新设备和 M1 iPad Pro。

高分辨率背景拍照 API:在 ARSession 运行期间,可以按需拍摄单张高分辨率照片(iPhone 13 上可达 1200 万像素),不打断视频流。Session 展示了一个摄影应用的概念——在 AR 场景中引导用户到达历史照片的拍摄位置,然后拍一张同角度的高清照片。

HDR 模式:新的视频格式支持高动态范围渲染。

AVCaptureDevice 直访:可以直接访问底层的 AVCaptureDevice,做更精细的相机控制。

EXIF 标签读取:ARKit 现在可以在帧数据中提供 EXIF 元数据。

平面锚点行为更新Motion Capture API 扩展城市定位锚点(Location Anchors)新增城市支持

值得深挖的点

Binning 机制的取舍是理解 4K 模式的关键。默认模式下 ARKit 对传感器图像做 2x2 像素合并,把 3840x2880 降到 1920x1440。这有两个好处:减少内存和处理开销(支持 60fps),以及在低光环境下降低噪点。4K 模式跳过 binning,图像面积从 3840x2880 变为 3840x2160(16:9),帧率上限降到 30fps。所以 4K 不是无脑开启——你需要根据应用场景做取舍。

高分辨率拍照的摄影测量应用可能是今年 ARKit 最被低估的能力。Object Capture(物体捕捉)通过拍摄多张照片来生成 3D 模型。现在你可以在 AR 引导下拍摄更高分辨率的物体照片,生成的 3D 模型细节会更丰富。这把摄影测量从”手动拍一圈”升级成了”AR 引导的专业拍摄”。

Location Anchors 的城市扩展让地理定位 AR 有更多落地场景。Session 用了一个有趣的演示:根据原始摄影师提供的坐标,在 AR 中引导用户到达 Apple Infinite Loop 校园旗杆的精确位置,复现 2016 年海盗旗照片的拍摄视角。

代码片段

启用 4K 视频模式:

let configuration = ARWorldTrackingConfiguration()

// 获取设备支持的 4K 视频格式
if let format = configuration.recommendedVideoFormatFor4KResolution {
    configuration.videoFormat = format
    // 4K: 3840x2160 @ 30fps
    // 不支持 4K 的设备返回 nil
} else {
    // 回退到默认 HD 模式
    // 1920x1440 @ 60fps
}

session.run(configuration)

在 AR 会话中拍摄高分辨率照片:

// 检查是否支持高分辨率拍照
if let format = configuration.recommendedVideoFormatForHighResFrameCapturing {
    configuration.videoFormat = format
}

// 拍摄高分辨率照片(AR 会话不中断)
session.captureHighResolutionPhoto { pixelBuffer, exifMetadata in
    // pixelBuffer: 完整传感器分辨率(如 1200 万像素)
    // exifMetadata: 包含完整的 EXIF 信息
    guard let buffer = pixelBuffer else { return }
    
    // 用于摄影测量、高清截图等场景
    processHighResImage(buffer)
}

启用 HDR 模式:

// 检查 HDR 视频格式支持
if let hdrFormat = ARWorldTrackingConfiguration
    .recommendedVideoFormatForHDR {
    configuration.videoFormat = hdrFormat
}

最佳实践

  • 不要长期持有 ARFrame:4K 帧占用大量内存,不及时释放会导致帧率下降和追踪退化
  • 4K 适合影视和摄影测量,不适合游戏:游戏优先选 HD@60fps 保证流畅度
  • iPad 上 4K 画面会被裁切:16:9 比例在 iPad 上两侧有裁切,UI 布局要考虑
  • 高分辨率拍照不要频繁调用:每次拍照都有处理开销,按需触发
  • 用 Console 警告检查帧持有问题:系统会输出内存相关警告,帮助定位问题

还有什么值得关注

  • 4K 视频在 Metal 自定义渲染管线中通过 ARSession.currentFrame.capturedImage 访问
  • RealityKit 自动处理缩放和裁切,你不需要手动处理
  • Object Capture 的质量提升对电商产品展示、建筑可视化等领域有实际商业价值
  • Location Anchors 的城市支持列表在持续扩展,具体城市需要查看最新文档
WWDC 2022