在游戏大作发布前,我们常在游戏广告中看到“运用最新3D引擎打造”类似的字眼,也会时不时的在网络评论中看到关于某游戏“旧瓶装新酒”用了前作的老引擎之类的吐槽。那么引擎到底是什么呢?
首先,游戏引擎包括一个渲染引擎,让程序员能够把内部绘制的2D图像和3D网格图适配在一起,从而制作出一个逼真的模型。之后,大多利用与一个或多个API重复利用处理器和显卡性能。此外游戏引擎还提供一些物理碰撞、光照反射等等功能。总的来说,游戏引擎就是一个合理编写的程序框架。
对于VR游戏,目前运用最多的引擎也就是Unity3D和Unreal Engine 4了,而且这两者对于AR也是相当支持。前些日子,Unity3D和Unreal Engine 4也是动作不断,相继推出新版本,更加优化了对于VR/AR的开发。
Unity3D
上个月,伴随着ARKit2.0的推出,Unity也与Apple合作,更新了其ARKit插件。更新后的Unity ARKit插件具备了及时访问功能,即共享和持久性的AR体验,也就是所谓的AR云了。开发人员可以使用ARWorldMap功能保存用户环境的特征点,并且可以发送给其他用户以建立多人游戏会话或由应用程序加载来查看已保存的内容。应用程序可以使用与观察到的环境相对应的ARWorldMap中的要素点来将设备重新定向到其周围环境。
ARKit 2.0使用一种名为AREnvironmentProbeAnchor的新锚点类型来建立了一个区域的环境地图,可随着时间的推移更新地图,并使用机器学习来预测纹理和光照的变化。为此Unity添加了一个新参数来处理锚点和三个用于指定纹理的新值。
除此以外,Unity还在iPhone X应用程序中启用了舌头和眼睛注视跟踪参数
也正是乘着iPhone X TrueDepth摄像头的一波东风,Unity推出了面部动画的新工作流程。借助facial AR remote component,开发人员可以通过iPhone X上的TrueDepth摄像头捕捉高质量的实时动作,Unity提供52种混合形状,来令表演者的面部表情与动画角色的面部表情相匹配。这在一定程度上大大方便了动画的制作。
同样方便创作者的还有unity推出的3D游戏工具包Mars。无需编码,通过元素的选择就可以制作出一个简单的AR游戏。
当然,Unity不光支持ARKit,对于ARCore也是同样支持。而且Unity还致力于在二者之间构建一座桥梁,打破水火不容的现状,实现跨平台兼容的愿望。于是AR Foundation应运而生,AR Foundation目前支持的AR功能包括表面平面检测、深度数据点云、设备位置和方向跟踪、内容缩放、光线投射、锚定虚拟对象的参考点、渲染色调。它在ARKit和ARCore之间建立了一些共同点,让开发人员更容易同时支持两个平台,从而也缩短了平台间应用发布与更新的时间差。