将真实世界带入增强现实
Bring your world into augmented reality
2022年6月6日
一句话判断
Object Capture API 去年在 macOS 上发布,今年通过 ARKit 6 的高分辨率拍照 API 让整个工作流更加顺畅——从 iPhone 拍照到 Mac 生成 3D 模型,再到 AR 体验,端到端只需几分钟。
这场 Session 讲了什么
Object Capture 团队的 Hao Tang 和 Risa 介绍了 Object Capture 技术的最新进展和最佳实践。Object Capture 是 Apple 的摄影测量 API,可以将真实物体的照片转换为详细的 3D 模型。
Session 分为四部分:Object Capture 的回顾、ARKit 6 中新增的高分辨率拍照 API、Object Capture 的最佳实践指南、以及从拍摄到 AR 体验的端到端工作流演示。
Object Capture 自 2021 年发布以来已被广泛采用:GOAT 应用用它创建鞋子的 3D 模型用于虚拟试穿,Plant Story 让用户在空间中预览真实植物模型,PolyCam、PhotoCatch 等应用构建了完整的 3D 扫描工具。
值得深挖的点
ARKit 6 的高分辨率拍照 API。 这是今年最重要的更新。新的 captureHighResolutionFrame API 允许在 ARSession 运行期间以原生相机分辨率拍照。在 iPhone 13 上意味着完整的 1200 万像素广角相机输出。这个 API 不会中断 ARSession 的连续视频流,你的 AR 引导 UI 可以持续运行。照片包含 EXIF 元数据(白平衡、曝光等)供后期处理使用。
手动相机控制的灵活性。 如果你需要对焦距、曝光或白平衡进行精细控制,可以通过 configurableCaptureDeviceForPrimaryCamera 获取底层的 AVCaptureDevice,直接修改其属性。
适合 Object Capture 的物体特征。 好的物体应该:表面有足够纹理(纹理缺失或透明区域重建质量差)、没有强烈反光或镜面反射(可以用漫射灯光减弱)、形状在翻转时不会改变(如果要拍底部)、可以包含精细结构但需要高分辨率相机近距离拍摄。
拍摄环境的设置。 理想环境需要均匀的漫射光照、稳定的背景、物体周围有足够空间。房间光线不足时可以使用良好照明的转盘。
代码片段
import ARKit
// 使用 ARKit 6 高分辨率拍照 API
let configuration = ARWorldTrackingConfiguration()
// 查询支持高分辨率拍摄的格式
if let highResFormat = ARWorldTrackingConfiguration
.supportedVideoFormats
.first(where: { $0.supportsHighResolutionFrameCapturing }) {
configuration.videoFormat = highResFormat
}
let session = ARSession()
session.run(configuration)
// 在 ARSession 中捕获高分辨率照片
session.captureHighResolutionFrame { frame in
guard let pixelBuffer = frame?.capturedImage else { return }
// 使用 pixelBuffer 生成照片
// 分辨率为原生相机分辨率(iPhone 13: 12MP)
// 包含 EXIF 元数据供后期处理
}
// 获取底层相机设备进行手动控制
if let device = configuration.configurableCaptureDeviceForPrimaryCamera {
// 精细控制对焦、曝光、白平衡
do {
try device.lockForConfiguration()
device.focusMode = .locked
device.exposureMode = .custom
device.whiteBalanceMode = .locked
device.unlockForConfiguration()
} catch {
print("相机配置失败: \(error)")
}
}
最佳实践
- 拍摄时围绕物体缓慢移动,从不同高度拍摄
- 确保物体在画面中心且占据足够的视野范围
- 相邻照片之间保持高重叠度
- 使用均匀的漫射光源,避免强烈阴影和反光
- 如果物体底部需要拍摄,翻转时要确保物体不会变形
- 使用 iPhone 或 iPad 拍摄的照片会包含深度和重力信息,Object Capture 可以自动恢复物体的真实尺度和朝向
- 纹理越丰富的物体,重建质量越高
还有什么值得关注
- Object Capture 仍然需要 macOS 来执行实际的 3D 重建
- 输出模型包含几何网格和多种材质贴图(纹理等),自动应用
- 配套观看 “Discover ARKit 6” 了解 ARKit 的完整更新
- 电商领域的虚拟试穿和空间预览是 Object Capture 的高价值应用场景