WWDC21 之后,RealityKit 的现状

2,229 阅读4分钟

说明

WWDC2021上,苹果更新了 RealityKit 2,一个大版本升级,但更新的都是细碎的功能。

更新内容

更新主要有两个方面:3D 渲染能力、AR 能力(SLAM 与 CV): 我们分别来看看,首先是 3D 渲染方面

3D渲染特性

  • 改进 ECS,自定义 system
  • 完整 PBR 材质、自定义材质与 Shader 支持
  • 屏幕后处理
  • 动画系统
  • 角色控制器
  • 动态网格几何体生成

其中 Shader 可以算是个重大更新,虽然并不能完全自定义,但终于可以使用 Shader 了。目前只支持 GeometryModifier 和 SurfaceShader 这两种方式来修改物体的顶点位置与表面材质不支持自定义光照方程,不过也基本够用了。

其实,上面这些功能在 SceneKit 原本就是可以实现的,虽然有些功能比较麻烦一些,也就是说以前直接使用 ARKit 的 ARSCNView 也可以实现这些效果,现在只是把这些效果重新用 RealityKit 实现了一遍而已,API 更好用了,性能也提升了不少。

相比原来的 SceneKit ,目前的渲染与模拟方面还缺少的重要功能有:

  • 粒子效果,这个非常必要,相信以后会更新支持的
  • 复杂物理模拟:磁场、电场,3D 约束等
  • LOD
  • 平面 UI 材质支持,如:用 CALayer 在 AR 中做一个触摸屏显示器

AR 特性(SLAM 与 CV)

  • 位置锚点改进,更稳定且支持更多地区
  • App Clip Codes Anchor
  • iPad Pro 前置广角人脸追踪
  • Motion Capture 支持后置广角
  • 引导 UI 改进
  • AR 过程录制与调试改进(录制摄像头画面、陀螺仪数据等,用来调试 AR)

这些 AR 特性更新原本属于 ARKit 的更新,不过 RealityKit 是苹果主推的 AR 开发框架,所以划到 RealityKit 的更新里也算合适。

个人认为其他功能都是小修小补,只有 App Clip Codes Anchor 这个功能算是个比较有用的功能实现。虽然苹果的 App Clip Code 现在用的人不多,但是作用还是挺重要的,它可以让我们在 AR 中识别并追踪包含特殊内容的锚点了,算是弥补了图片锚点的不足:

  • 图片锚点对类似二维码这种高度相似的东西,无法区分,也无法追踪;
  • 图片锚点需要预先处理好图片做为锚点,比如一本杂志的封面,只能是固定的,下期换封面了就必须重新录入图片做成新锚点;

Mac 独占:从照片生成模型 Object Capture

其实以前一直不明白,RealityKit 被苹果做成跨平台(iOS、macOS)到底有什么意义。因为 Mac 上没有后置摄像头,前置也不支持 TrueDepth,不能开启 AR 功能,RealityKit 在 Mac 上只能退化为 3D 模型显示。

今年的 Object Capture 总算带来了一些不同,它标志着苹果正在将 Mac 打造为全功能的 AR 开发平台。

未来待融合技术

ARKit 已经推出第 5 年了,RealityKit 也到第 3 年了,我认为在手机这个平台上,功能已经基本成熟了,未来可以添加的新功能已经不多了。不过,苹果将现有的一些功能整合进 AR 中,还是有比较大的可能的,比如:

  • 实时图像内容与文本识别 Live Text,目前已在相机与相册中启用,未来用到 AR 中也会很方便;
  • 2D、3D 手势识别,Vision 框架中已经有了 2D 识别,先整合到 AR 中,再进化为 3D 的中也是可能的;
  • 空间几何感知音频(PHASE):空间音频不再仅仅是 360 环绕的声音,声源还可能被虚拟物体挡住,能用在 AR 中可以为体验增色不少;
  • SharePlay,可以在 AR 中完成多人共享视频与音乐功能,很有潜力;
  • SwiftUI 做为 AR 材质,可以方便推广 SwiftUI,也能补充 RealityKit 中缺乏复杂材质的弱点;
  • Apple Watch 作为手部控制器,在手机 AR 中用处不大,但与 AR 眼镜联合使用会比较方便;

未来定位

以前的 ARKit 除了 SLAM 和 CV 能力外,还利用了 SceneKit 来渲染 3D 内容,现在已经完全变成了 AR 能力的提供者,不再更新其 3D 渲染功能了。而 RealityKit 正在成为集大成者,代表着 AR 的未来,但目前的情况是,RealityKit 一方面在追赶旧的 SceneKit 功能同时(离完全追上还差一次大更新),还要面对 Unity 在 AR 方面的竞争。

然而,尴尬的是,手机并不是 AR 的理想载体,增强现实目前在手机平台的发展面临瓶颈。RealityKit 下一步的发展,需要新的 AR 硬件支撑 —— AR 眼镜、VR 头显。现在的问题是,这个硬件要到什么时候出来呢?

从目前软件方面的进度来说,RealityKit 下一次大更新时,推出新的 AR 硬件会比较合适,这样能确定 RealityKit 框架下一步的发展方向,避免其因为与 SceneKit/Unity 功能重叠,而成为一个成熟的“废物”框架。

AR 的未来属于 RealityKit,但仍需时日。