我正在参加中秋创意投稿大赛,详情请看:中秋创意投稿大赛
AR Quick Look 可以非常迅速的在iOS设备上提供强大的AR体验。借着中秋活动,我来教大家如何使用AR Quick Look来实现在自己屋子里赏月。
找一个月亮模型
打开Sketchfab网站,搜索“moon”。
Sketchfab是一个3D模型共享平台,有大量免费、付费的各类3D模型。目前已被EPIC(
Unreal引擎开发商)收购。
记得勾选downloadable,选择可以下载的模型。
- USDZ格式
USDZ格式全称Universal Scene Description,是由苹果与皮克斯共同研发的AR专属模型格式。在iOS系统中,这个格式的模型使构建AR应用变得非常容易。
- Reality Converter
那如果没有USDZ格式的模型怎么办呢?苹果官方也提供了一系列的工具来帮我们制作和转换模型。
使用Reality Converter可以将大部分其他格式的模型转换为USDZ格式,方便在iOS里使用。
开发AR速览应用
新建项目
打开XCode,新建项目,选择Augmented Reality App
设置产品名称,bundle id,选择渲染引擎Metal,语言用Swift或Objective-C都行,根据自己的情况选择。
导入模型
将我们准备好的USDZ模型,导入到项目文件中
编写代码
然后打开ViewController.swift,先导入QuickLook库
import QuickLook
把示例代码中的如下部分注释掉,因为我们用不到
然后在代码中添加
//模型的数量
func numberOfPreviewItems(in controller: QLPreviewController) -> Int { return 1 }
//请求模型时返回USDZ模型的本地路径
func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
guard let path = Bundle.main.path(forResource: "moon", ofType: "usdz") else { fatalError("Couldn't find the supported input file.") }
let url = URL(fileURLWithPath: path)
return url as QLPreviewItem
}
//当ViewController视图完成显示时,调起QuickLook控制器
override func viewDidAppear(_ animated: Bool) {
let previewController = QLPreviewController()
previewController.dataSource = self
present(previewController, animated: true, completion: nil)
}
运行起来!
是不是非常快的我们就在iOS里构建了一个AR月亮,让我们开始赏月吧!gif图有点大,请耐心等待