AR Quick Look 遇见 Object Capture
AR Quick Look, meet Object Capture
2021年6月10日
一句话判断
Object Capture 生成的 3D 模型和 AR Quick Look 的无缝对接才是这个故事最完整的部分 —— 从拍摄到上线 AR 预览,中间只需要一个 USDZ 文件,电商和零售行业应该立刻关注。
这场 Session 讲了什么
这集是 Object Capture 和 AR Quick Look 的”桥接”讲解。前半部分回顾了 Object Capture 的基本工作流(iOS 拍摄 -> Mac 重建),后半部分重点讲解如何把重建出来的 USDZ 模型直接用于 AR Quick Look 预览。
Session 展示了一个电商场景的完整流程:拍一双鞋子 -> 生成 3D 模型 -> 放到网站/Safari -> 用户在 AR Quick Look 中预览鞋子放在真实环境中的效果。整个过程不需要任何 3D 建模专业知识。
还讨论了 AR Quick Look 的新的定制能力:自定义 Scale(缩放)、自定义 AR Banner(顶部横幅)、以及如何通过 webAr 参数控制分享和预览行为。
值得深挖的点
Object Capture 输出到 AR Quick Look 的优化管道。直接从 Object Capture 高质量输出的 USDZ 文件可能有几十 MB(含高精度纹理),直接用在 Web 上体验很差。Session 推荐的管道是:Object Capture high output -> 用 Reality Converter 或 usdcat 优化(降采样纹理、简化网格)-> 生成轻量 USDZ -> 部署到 Web。这个过程可以脚本化,但苹果目前没有提供一键工具。
AR Quick Look 的 Web 集成细节。在网页中嵌入 AR 预览只需要一个 <a> 标签指向 USDZ 文件,加上 rel="ar" 属性。iOS Safari 会自动识别并提供 AR 预览选项。新增的参数包括 allowsContentScaling=0(禁止用户缩放模型)和 canonicalWebPageURL(指定返回页面)。这些参数让电商场景的 AR 体验更可控。
代码片段
网页中嵌入 AR Quick Look 预览:
<!-- 基础 AR Quick Look 链接 -->
<a rel="ar" href="https://example.com/models/shoe.usdz">
<img src="shoe_thumbnail.jpg" alt="在 AR 中预览鞋子">
</a>
<!-- 带自定义参数的 AR 预览 -->
<a rel="ar"
href="https://example.com/models/shoe.usdz#allowsContentScaling=0&canonicalWebPageURL=https://example.com/shoe-page">
<img src="shoe_thumbnail.jpg" alt="在 AR 中预览鞋子">
</a>
SwiftUI 中使用 AR Quick Look:
import SwiftUI
import QuickLook
struct ARQuickLookView: UIViewControllerRepresentable {
let modelURL: URL
func makeUIViewController(context: Context) -> QLPreviewController {
let controller = QLPreviewController()
controller.dataSource = ARPreviewDataSource(url: modelURL)
return controller
}
func updateUIViewController(_ uiViewController: QLPreviewController, context: Context) {}
}
class ARPreviewDataSource: NSObject, QLPreviewControllerDataSource {
let url: URL
init(url: URL) { self.url = url }
func numberOfPreviewItems(in controller: QLPreviewController) -> Int { 1 }
func previewController(_ controller: QLPreviewController,
previewItemAt index: Int) -> QLPreviewItem {
return url as QLPreviewItem
}
}
批量优化 Object Capture 输出:
# 批量处理:降低纹理分辨率,简化网格
for file in *.usdz; do
# 使用 usdcat 重新打包并压缩
usdcat "$file" -o "optimized_${file}"
# 验证输出文件
usdchecker "optimized_${file}"
done
最佳实践
- 电商场景用
preview质量起步。Object Capture 的 preview 输出足够 AR Quick Look 展示,文件小、生成快。如果对细节有要求再用 medium 或 high。 - USDZ 文件必须启用 HTTPS。AR Quick Look 在 Safari 中要求模型 URL 使用 HTTPS,否则直接拒绝加载。
- 给 AR Quick Look 预览提供 2D 备选方案。不是所有用户都在 iOS 设备上访问,Android 和桌面端需要一个传统的 3D 查看器或至少一组多角度照片。
还有什么值得关注
- AR Quick Look 新增了对自定义 AR Banner 的支持,可以显示品牌信息和购买按钮。
- USDZ 文件内可以嵌入元数据(作者、版权、创建日期),用
usdcat查看。 - Object Capture 和 Mac 端的 Photogrammetry 框架在 macOS 12 Monterey 上可用。