/ 开发笔记

#ARKit# 聊聊苹果的AR三件套

刚刚结束的WWDC2019(2019世界开发者大会)上,苹果公布了新的AR套件,除了升级版的ARKit3,还有 RealityKitRealityComposer。作为一个非常会营销的公司,创造新名词,简直是信手拈来,比如这次WWDC上,苹果就又创造了两个词:RealityKit 和 RealityComposer。

在程序员的世界,我们从不看外表(才怪),只看内涵(段子……)。

今天,我们就来一一了解一下这些到底是啥玩意儿。

什么是AR?

(图:苹果网站关于AR的描述)

AR = Augmented reality,增强现实,指的是这样的一种体验,在用户的摄像头的视野里,加入2D或者3D的元素,看起来就像是原生在真实世界里一样,从而实现对现实进行增强。

什么是ARKit?

(图:苹果网站关于ARKit的描述)

ARKit 是苹果公司提供的一个AR开发套件。它利用设备的前后摄像头以及多种传感器,实现了动作跟踪场景捕捉场景处理等多种技术,大大简化了AR应用的开发过程。

目前,ARKit能通过扫描特征点,识别出多种场景,实现多种功能,比如

  • 通过前置摄像头可以进行人脸识别,以及脸部的多种特征,FaceID(面容解锁)就是利用了这个技术。
  • 而后置摄像头可以实现:
  • 人物动作捕捉
  • 预设的2D图像和3D模型识别
  • 识别水平和垂直平面,房间的形状,环境的光照
  • 位置变化识别,比如手机的移动轨迹,旋转朝向等

什么是RealityKit?

(图:苹果网站关于RealityKit的描述)

如果说,ARKit是通过扫描当前所处的环境,并将其数字化,比如,哪里有个平面,哪里有墙,哪里有人在做动作,当前用户所在位置,等等。

RealityKit则利用这些数据,重构虚拟世界,并添加新的虚拟物品。

(图:ARKit与RealityKity如何协作 来源:苹果网站)

根据苹果的文档,除了提供3D渲染功能外,RealityKit还能提供

  • 基于空间的声音源,也就是说声音能够根据距离和位置产生不同的变化,从而产生真实感
  • 导入带有动画效果的虚拟物体,这个动画既可以手动控制,也可以由物理变化来控制
  • 对用户的输入以及环境的变化产生反馈
  • 不同设备之间的信息同步

这大概就是为什么苹果把这个框架叫做RealityKit吧,因为它是负责重新构建增强后的现实世界

什么是RealityComposer?

(图:苹果网站关于RealityComposer的描述)

与ARKit 和 RealityKit不同,RealityComposer不是一个开发框架,而是一个App工具。通过它,开发者可以把3D模型和声音等组合起来,并设定好它们相互作用的方式,从而可以方便地添加到AR环境中。

(图:RealityComposer的编辑界面 来源:苹果网站)

简单说,它就是RealityKit的辅助建模工具

Unity怎么看?

Unity已经宣布对ARKit3的支持,但是对于 RealityKit 和 RealityComposer 还没有什么消息。

参考:Unity宣布支持ARKit3

不过,其实,RealityKit提供的功能,很多都是Unity现有的功能在iOS环境下的实现。猜测,Unity并不需要做很多这部分工作。

而RealityComposer,Unity需要提供一个插件来支持将RealityComposer导出的模型,转换成Unity能使用的格式。

总结

经过以上分析,可以发现,WWDC2019推出的AR三件套,对于上一个版本,是非常大的改进,和极大的完善。

从中我们可以看到苹果的野心,它是绝对不满足于为别人做嫁衣的。所以,甚至连开发环境,它也希望通过为开发者提供一个完整的开发工具链,来构建的自己的AR生态,实现闭环

参考文献

  • https://developer.apple.com/videos/play/wwdc2019/603/
  • https://developer.apple.com/documentation/arkit
  • https://developer.apple.com/documentation/realitykit/
  • https://developer.apple.com/documentation/realitykit/creating_3d_content_with_reality_composer

我是阿斌,一个耿直的IT男,关注我,带你从程序员的视角看世界。

(公众号:耿直的IT男阿斌)