首页 > 行业资讯 > 查看内容

英伟达的虚拟现实探索之路:图像渲染 (上)

2017-12-11 16:44:29|来源: 87870

  本文作者为 NVIADIA AR & VR 研究小组的科学家 Morgan McGuire,在本文中,他详细介绍了电影、游戏的图像渲染,与现在 VR 图像渲染的不同之处,以及 VR 在图像渲染方面临的挑战。同时,他还讲述了英伟达如何通过 GPU 和相关软件,来解决这些问题的。这是文章的第一部分,编译如下。
 

  作者介绍:Morgan McGuire 博士是 NVIADIA AR & VR 研究小组的科学家。他在 Activision 和 THQ的系列游戏 Skylanders、Call of Duty、Marvel Ultimate Alliance 和 Titan Quest 制作中都有所贡献。Morgan 还是 Graphics Codex 和 Computer Graphics:Principles & Practice 的共同作者。同时,他也在滑铁卢大学和威廉姆斯学院担任教职。

  NVIADIA Research 的研究遍布全球,我们的科学家和当地的大学都有着密切合作。我们的研究领域包括自驾驶、机器人和游戏电影图像等多个应用方向。

 

  我们在虚拟体验上的创新技术你可能已经听说过一些,比如焦点渲染技术(foveated rendering),变焦光学,全息摄影和光场。这篇文章将会详细描述我们目前的研究工作,更重要的是展示出,我们是如何通过一系列的研究掀起计算机与现实交互的变革。

  NVIDIA 一直致力于做世界上最好的 GPU。在研究中我们的角色在于跳出稳步改进的产品周期,寻求革命性的改变和新的应用。我们正在将虚拟现实从早期的概念变为一场计算机的革命。

  研究愿景

  我们的愿景是:在未来, VR 将会成为所有计算机的界面形式,它将代替手机屏幕、电脑显示器和键盘、电视和遥控器,还有汽车仪表盘。我们方便起见,文章中用 VR 来代表所有虚拟体验(无论你带上戴上头戴显示器时,是否能同时看到现实世界)。

  我们将目标设定为所有计算机界面,是因为我们在 NVIDIA 的任务是创造出革命性技术,而只有当一个技术成为人们的日常使用,才能被称为真正的革命性。一个技术,必须彻底渗透进我们的生活,才能真正产生影响。最重要的技术就是那些我们习以为常的东西。

  如果我们的目标是所有计算机和广泛存在的界面,那就不得不提到游戏的 VR 体验。如今,游戏已经成为  VR 应用的一个重要领域。NVIDIA 已经拥有了相关产品,并且我们的 GPU 架构也为新的 VR 功能提供了基础。NVIDIA 非常重视游戏领域,我们坚信 VR 会为游戏带来新的惊喜。但是,VR 的真正潜能可不仅仅是游戏,因为游戏只是计算机的一部分。因此我们从 VR 游戏开始,但技术已经扩展至与计算机相关的工作、社交、健身、医疗健康、旅行、科技、教育各个领域。

  NVIDIA 在这场 VR 革命中有着特殊的地位和贡献。在 1999 年推出现代 GPU 之前,我们就曾改造过消费级计算机,为其提供了高性能的计算。而在今天,你的电脑、平板、手机、汽车和电视中都有我们的 GPU,它们为你提供了曾经只能在超级计算机中实现的高算力。多亏了设备中无处不在的 GPU,如今的我们都能享受升级的高生产力、便捷的使用和各种娱乐应用。

 

  为了让 VR 成为我们生活中不可或缺的一部分,VR 系统必须更加便捷易用且便宜耐用。所以我们正在构建新的头显技术:使用激光和全息图的轻薄眼镜代替目前笨重的 VR 头显,它可以应用在各种平板、手机、笔记本电脑上,操作也更加简单,并且可以在 AR/VR/MR 三种模式间轻松转换,同时它将搭载新的GPU 和图形软件。

  所有这些创新都为计算机交互指出了一个新的发展方向,当然也提出了新的要求:不仅仅需要新的设备或软件,更需要一个全新的 VR 系统。在 NVIDIA,我们正在用尖端工具、传感器、物理学、人工智能、处理器、算法、数据结构和展示技术来创造这种系统。

  NVIADIA Research 秉承着开放的思维,通过发表期刊和开源代码来分享我们的研究成果。首先,为了阐明我们对未来 AR/VR 的构想,我们需要了解现有的电影、游戏和 VR 系统是如何运作的。

  电影图像渲染

  现在的好莱坞动作大片通常会混合真实人物和计算机生成图像(CGI)来呈现惊人的视觉效果。目前的 CGI 技术已经非常成熟,好莱坞布景甚至可以全部通过计算机生成。在 2016 年的《死侍》中,场景编排中的每一个物体都是由计算机渲染而不是真实拍摄的,不仅仅是爆炸场景和子弹,还包括建筑物、车辆和人员。

 

  从技术的角度看,用高视觉保真度来制作这些图像的电影系统可以用下图来描述:
 

  图中分为多个阶段,最左边是创作阶段,接着是粒子、三角形、曲线细分曲面的初步建模,直到最后的渲染器。渲染器使用一种叫做“路径追踪”的算法来模拟虚拟场景中的光线。

  渲染之后,还要手动对二维图像进行颜色及合成的后期处理。整个过程在导演、编辑和艺术家的视觉反馈修改中不断循环,直到最终呈现给观众。而电影的图像质量则是我们这种 VR 现实主义者的目标追求。

  游戏图像渲染

  电影系统演化成一个 3D 游戏设计的类似系统。游戏体现了我们在 VR 交互中对速度和灵活性的追求(即使有些是非娱乐应用)。游戏图形系统如下图所示:

 

  我在这里特别展示了一个延迟着色的管线,这是大多数 PC 游戏所使用的方法,因为它能提供最高的图像质量和流率。

  与电影类似,游戏图像系统也从创作过程开始,不过游戏的艺术设计是个较大的循环,因为游戏需要与玩家产生一个交互循环。当玩家看到屏幕上的物体时,他会通过点击按钮与其进行交互。玩家的输入将会进入图形处理管线中一个较晚的帧中。这个过程是“延迟”的,玩家的输入需要花费时间来更新下一帧。为了让玩家获得即时反馈,在传统视频游戏中,这个延迟必须低于 150ms,保持这种低延迟是游戏系统的一个挑战。

  然而,有很多因素会增加延迟。比如,游戏使用的是“光栅化”渲染算法而不是路径追踪法,而延迟着色的光栅管线有很多阶段,每一个阶段都会增加一些延迟。同时,跟电影一样,游戏也有很多 2D 后期处理内容,在上面的多阶段管线图中标记为“PostFX”。像流水线一样,这种较长的管线增加了流率,也可以实现高质量的帧率和分辨率,但同时复杂性却牺牲了延迟率。

  如果只看图像输出,像素从这条流水线中产出得很快,这也是 PC 游戏拥有高帧速率的原因。但实际上,像素在管线中花费了很长时间,因为这个管线由很多阶段构成。图中的红色竖线表示障碍同步点,它们会放大延迟,因为在这个障碍点上,下一个阶段的像素必须等待上一个阶段的像素被处理完成后才能被处理。

  这种游戏图形管线同样可以带来惊人的视觉体验。在精心的艺术指导下,技术人员可以在顶级 GPU 上将游戏画面处理成电影 CGI 甚至是真人电影的画质。比如我们熟悉的电子游戏“星球大战:前线(2017)”。

 

  尽管如此,最好的星战游戏画面仍然比星战电影中的更加静态。这是因为游戏的视觉特效必须根据游戏性能进行调整。这意味着游戏画面中的光影和几何变化无法像大屏幕中那样绚丽。不过你可能已经习惯了这种相对静态的游戏环境。

  VR 图像渲染

  现在,我们来看看电影和游戏与现代 VR 有什么不同。当开发者将做游戏的那一套移植到 VR 时,他们遇到的第一个挑战就是规模的增加。游戏中需要的原始图形功耗只有每秒 6000 万像素,到了 VR,每秒则需要 4 亿 5 千万像素。而这只是一个开始,明年 VR 的功耗将会翻倍。

 

  相比于 30FPS 的 1080P 的游戏,Oculus Rift 或 HTC Vive 上 45,000 万像素每秒的功耗,每秒处理的像素数目几乎增加了 7 倍。这也导致吞吐量(Throughput)的增加,因为它会改变像素在图形系统中的移动速度。

  功耗的提升是巨大的,而性能上的挑战则更大。回想一下传统游戏中,玩家输入与屏幕像素改变间互动的延迟大约是 100-150ms。但对 VR 来说,我们不仅要增加 7 倍的吞吐量,还要降低 7 倍的延迟。如今的 VR 开发者是如何做到这些的?我们先从延迟看起。

  下图所示,延迟即是数据从系统中的左边阶段移动到右边阶段的时间。系统中的阶段越多,吞吐量就会越高,因为处理过程可以并行,但是这也会令管线变得更长,延迟问题就会更加严重。为了减少延迟,则需要减少图中方格和红线的数量。

 

  正如你所预料的那样,为了减少延迟,开发者可以尽可能多地移除管线中的阶段,正如上图中的修改,这意味着在 3D 场景中切换回“上一步”的渲染管线,完成所有处理,而不是在 2D 中多次加入阴影和 PostFX 处理。这会减少吞吐量,牺牲图形质量,但不幸的是,如此方法降低的延迟仍远远不够。

  所以现代 VR 解决延迟的关键技术叫做“时间扭曲(Time Warp)”。在这种方法中,屏幕图像的更新可以不经过完整的图形管线。用户头部的追踪数据可以直接进入渲染完成后的 GPU 阶段。因为该阶段更“接近”显示器,所以它可以扭曲已经渲染过的图像以匹配最新的头部追踪数据,而不需要穿过整个渲染管线。在一些预测头部运动的技术配合下,延迟可以被降低到 50ms 甚至是 0。

  现代 VR 硬件的另一个关键问题是镜头畸变(Lens Distortion)。一个好的相机光学元件至少包含五个高品质的玻璃镜片。但这是会让头显变得沉重、巨大且昂贵,你不会希望在头上架两个单反相机。

 

  这也是许多头戴式显示器使用两个便宜的塑料镜片的原因。这些镜头轻便小巧,但是图像质量不高。为了校正单一镜片的图像畸变和色差,着色器需要以相反的量扭曲图像。

  NVIDIA GPU 硬件和我们的 VRWorks 软件加速了现代 VR 的图形管线。GeForce GTX 1080 和其他 Pascal 架构 GPU 使用一种叫做“Simultaneous Multi-projection”的新功能从多个角度分别同时渲染图像,既增加了吞吐量,又降低了延迟。这个功能提供单通道立体声,使双眼同时呈现透镜匹配的阴影效果,直接渲染预校正的图像,因此性能更好,图像更清晰。同时,GTX 1080 中的 GDDR5X 内存提供了比上一代多 1.7 倍的带宽,而硬件音频和物理技术则有助于创建更精确的虚拟世界,以增加沉浸感。

 
  减少了管线阶段,使用“时间扭曲”,解决镜头畸变,配合一个高效的 PC GPU,现代 VR 系统就此形成。
联盟会员
合作伙伴
公众平台