这就是HoloLens 2现场演示《阿波罗11号》中展示的技术能力——对于企业背景下的混合现实来说,这是一个巨大的进步。这一演示表明,通过利用虚幻引擎和HoloLens 2,我们能够在混合现实中实现前所未见的超高质量视觉效果。 在去年这一项目结出成果时,我们曾经对它进行过考察。而这一次我们将深入探索其创作技术。
无线流送的高保真MR视觉效果
阿波罗11号演示原计划在微软Build大会上登台展示,它是Epic Games与微软的协作项目,旨在为HoloLens 2带来一流的视觉效果。“当微软专攻AI和混合现实的技术院士Alex Kipman邀请我们试用HoloLens 2的早期样机时,我们都被它在沉浸感和舒适感方面的划时代进步惊呆了。”Epic Games负责监督该项目的高级项目主管Francois Antoine说,“在结束会谈时,我们脑子里只有一个想法:怎样才能最好地演示HoloLens 2的神奇能力?”巧的是,去年正逢人类最大的技术成就——首次载人登月——五十周年。这就提供了他们想要的背景,因此Epic团队开始着手创作一个演示,力图再现那场历史性任务的重要瞬间。
为了确保尽可能忠实于源素材,团队请出了业界研究阿波罗11号登月任务的一些顶尖专家。这个实时演示的讲解者是工业光魔的首席创意官John Knoll和撰写了《Man on the Moon》一书的航天史学家Andrew Chaikin。Knoll提供了许多参考材料,就3D资源的逼真程度提出了建议,还向从事该项目的Epic团队说明了整个登月任务。
这个演示深入挖掘阿波罗11号任务的方方面面,提供了前所未有的视觉效果细节。“这是迄今为止最逼真的混合现实体验。”项目的技术美术师MinJie Wu说。
视觉效果从在联网PC上运行的虚幻引擎无线流送到Knoll和Chaikin戴的HoloLens 2,使用原型版的Azure Spatial Anchors在两位讲解者之间创造共享的体验。
通过两台HoloLens设备的联网,每个人都能了解对方在实体空间中的位置,从而能够相互追踪。第三台Steadicam摄像机也通过以螺栓固定在其前方的HP Windows混合现实头显而得到跟踪。
为了校准这第三台实体摄像机,使其与虚幻引擎摄像机保持一致,团队遇到了特别大的挑战。“我们从多个视角拍摄了一个镜头网格,然后使用OpenCV计算镜头参数。”虚拟制片工程师David Hibbitts说,“然后我在虚幻引擎中使用这些镜头参数配合Lens Distortion插件计算虚幻摄像机的属性(视野、焦距等)并生成置换贴图,它可以用来使虚幻渲染产生畸变,以配合摄像机拍摄的镜头。”
即使能够得到正确的摄像机设置和畸变,当摄像机开始运动时,还是可能发生不匹配的情况。这是因为在摄像机上跟踪的点与镜头的节点不一致,而虚幻引擎使用后者作为摄像机变换位置,因此必须计算这种偏移。“为了解决这个问题,你需要知道一些场景中已知的3D位置和同样这些点在摄像机视图中的2D位置,这样你就能计算节点的3D位置,如果你知道了拍摄图像时摄像机的跟踪位置,你就能找出偏移。”Hibbitts解释说。
为了获取已知点和已知摄像机位置,团队要在使用镜头网格上的点作为已知点拍摄网格时,确保跟踪系统运行。这样就能一次性校准摄像机和跟踪偏移。
这种设置需要三个虚幻引擎实例:一个用于摄像机,另两个各用于一台HoloLens。它们都和一台独立的专用服务器联网。“他们还会互相对话,确定各自在实际空间中的位置,这样每个人都能同时看到相同的东西,”阿波罗11号项目的XR主管Ryan Vance说。
将计算过程从移动设备转移到高性能PC是实现混合现实的重要一步。以前只能在移动设备上运行整个虚幻引擎堆栈。“这样做的优点是,这是用于手机或其他任何移动设备的标准移动部署策略。”Vance说,“缺点是,从计算角度来看,你会受限于设备本身的硬件能力。”
现在,通过利用虚幻引擎对Holographic Remoting的支持,可以将高端PC的图形输送到HoloLens设备。“在PC上渲染真正高质量的视觉效果,然后把它们输送到HoloLens,这样就能带来新的体验——是大家从未有过的体验。”Vance说。
Holographic Remoting使用Wi-Fi连接将全息内容从PC实时流送到微软HoloLens设备。“不需要依靠移动设备的本机硬件就能产生最终图像,这是一个巨大的优势。”Wu说。
讲解者与全新影像之间的互动展示了MR与VR的互动设计差异。“在VR中,你要设置‘安全区’,并保证体验者只会在这个区域里移动,”该项目的首席程序员Jason Bestimt说。“在MR中,你就不会受到这种约束。实际上,在空间里到处移动就是你充分享受这种体验的方式。”
利用二次投影处理往返延迟问题
为了创作阿波罗11号演示,团队利用了已经在游戏中运用多年的功能。“有一点很妙,就是你可以利用标准的虚幻联网和游戏性框架概念——我们现在对它们已经了如指掌——利用它们构建出多人协作式全息体验。”Vance说。每当XR系统中增加一路网络连接,跟踪数据的流送就会产生延迟。这个项目最大的挑战之一就是确保跟踪系统保持同步,然而PC与HoloLens设备之间至少有60毫秒的往返延迟。“这样一来,场景的位置会相对于你头部的实际位置往后移动一些。”Vance解释说。“哪怕你站着一动不动,但只要你的头部稍有动作,你就会注意到这一点。”
为了解决这个问题,微软将他们的二次投影技术集成到遥控层中——这是处理延迟问题的标准方法。二次投影是一种成熟的硬件辅助全息稳定技术,它会考虑场景中播放动画和用户移动头部时的动作与视角改变。应用二次投影技术确保了系统的各部分能进行沟通,就一个点在虚拟世界中的位置与实体世界中相应点的位置关系达成一致。
试验混合现实交互
在直播活动项目证明HoloLens 2到虚幻引擎的设置可行后,团队提出了制作该演示的公开发行版本的设想。“我们想把它重新打包成简单一点的东西,让任何人都能用它部署单用户体验。”Antoine说。阿波罗11号演示已经在虚幻商城免费开放下载。在创作这个公开版时,团队对于特别成功的混合现实交互类型有了许多心得。“起初我们创作了许多疯狂的交互——钢铁侠式的交互。”该项目的技术美术师Simone Lombardo说。“虽然我们觉得这些交互很有趣,使用起来也很直观,但没能得到所有人的认同。”
初次接触混合现实的用户会觉得那些比较复杂的交互都难以理解,许多人会在错误的时间触发交互。事实证明,最方便的交互方式就是简单的抓取/触摸,因为这和现实世界中的交互完全一致。
基于这一认识,阿波罗11号演示使用了直截了当的触摸动作进行交互。“我们去掉了所有‘复杂的’交互,比如‘双重捏紧’之类,这不仅是因为演示用户会不小心触发它们,还因为当用户的双手不在视野中时会出现许多无心之举。”Bestimt解释说,“许多用户在放松时会让自己的拇指和食指并到一起,这样一来就做出了一个‘捏紧’手势。当他们抬手开始交互时,系统就会自动检测到他们无意间做出的捏紧。”
事实证明其他交互方式——例如使用菜单——也不利于体验,会导致用户无意识地大大减少移动对象的行为。
团队还找到了弥合虚拟与现实世界鸿沟的新方法。许多用户看到全息影像时,会本能地想去触摸它,从而使他们的手指穿过全息影像。“我们添加了一种距离场效果,使得当真人的手指接触全新影像时,后者会发出蓝色的光芒。”Lombardo说,“这就在真实与虚幻之间建立了联系。”
从那以后该团队一直在开发用于HoloLens 2的Azure Spatial Anchors支持,该功能已经在最新的虚幻引擎4.25预览版中开放测试。Spatial Anchors能让全息影像在不同会话之间存留于实际空间。“这样一来要让所有内容保持一致就会容易得多。”Vance说,“因此大家应该可以比较简单地再现我们在联网舞台演示中展现的功能,实现多人共享同一空间。”
自从微软HoloLens 2上市以来,就有人预测全息计算将会给从零售到土木工程的各行各业带来天翻地覆的冲击。阿波罗11号演示中展示的设置体现了优质的视觉效果和交互,使我们在实现这一目标的路程上前进了一大步。
想自己创建逼真的混合现实体验吗?现在就免费下载虚幻引擎,在我们的虚幻引擎4.25预览版中探索Azure Spatial Anchors吧。