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

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

2017-12-11 17:21:09|来源: 87870

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

  我们从人类感知的极限中推导出未 VR 的规范。衡量这些的方法有很多种,但若要做出完美的显示,你需要大约相当于 200 个更新速度在 240Hz 的 HDTV。这约等于每秒 100,000 万像素的图像吞吐量

  回忆一下,现今 VR 的图像吞吐量大约在 450 万像素每秒。这意味着未来的 VR 需要将性能提升 200 倍。但是由于高动态范围、可变焦点和现有电影标准对视觉质量和光线的要求,更加现实的性能需求是达到 10,000 倍的提升。并且我们只要 1ms 的延迟。

  理论上,我们可以通过提高算力来实现这个目标,但是这样的蛮力并不高效也不经济,蛮力不会让 VR 的使用广泛化。那么,我们可以用什么技术来实现这一目标呢?

  渲染算法

  · 焦点渲染( Foveated Rendering)

  我们提升性能的第一个方法是焦点渲染——降低用户的周边视觉中的图像质量,提升中心视角中的图像质量,它利用了人类视觉感知的自然特性,在未感知的部分舍弃质量,从而提升整体的 VR 性能。

 

  因为眼睛本身只有在你视野聚焦的地方才有很高的分辨率,所以在视野中央区域以外,VR 系统可以不被察觉地舍弃周边像素的分辨率,从而提高整体性能。不过,它不能在低分辨率上渲染。上面的图像是缩小比例展示的宽视野 2D 图像。如果你在 VR 中注视时钟,那么左边的公告牌就在你的中心视野外围。如果只放弃顶部图像中的分辨率,就会立刻产生块状图形和视觉对比度的变化。你的眼睛会察觉到这些变化,你会觉得眼角部分的图像发生了改动或者感到模糊。我们的目标是计算生成低分辨率图像所需的精确优化量,并使外围低分辨率的模糊图像能够与人类视觉精准匹配,让用户的 VR 视野如同真实视野一样完美。

  · 光场(Light Fields)

  为了加速 VR 渲染逼真的 VR 图像,我们正在考虑三角形网格外的渲染图元。在与麦吉尔大学(McGill University)和斯坦福大学的合作中,我们使用光场来加速照明计算。不同于现有的仅展示物体表面光照情况的 2D 光线地图,光场面对的是一个 4D 的数据结构,可以存储空间中所有光线可能的方向和角度。

 

  光场可以产出场景中所有表面的反射和阴影,甚至是动态角色。这也为统一光线跟踪质量和环境探测器及光照地图的性能打好下一步基础。

  · 实时光线跟踪(Real-time Ray Tracing)

  那么真正运行时的光线跟踪是怎么的呢?NVIDIA Volta GPU 是目前世界上最快的光线追踪处理器,而 NVIDIA Pascal GPU 系列是消费级中最快的。Pascal 的速度约为 10 亿次/秒,这个速度完全可以取代现有VR 的主光栅器或阴影地图。那么如果用这个技术来解锁管线的话,光线追踪可以为未来的 VR 带来什么呢?

  答案是:光线追踪可以帮助 VR 做很多事情。在进行光线追踪时,你根本无需使用阴影地图,从而直接消除一个延迟障碍。光线追踪本身就可以分别渲染红色,绿色和蓝色,并直接渲染镜头中的桶形失真图像。所以,它无需再对镜头畸变进行处理,也因此减少了相应的延迟。

  事实上,当进行光线追踪时,渲染像素离散帧的延迟可以被完全消除,因此,这里实际上已经没有了典型意义上的“帧速率”的概念。我们可以将 GPU 生成的每个像素直接发送到显示器中,这种方法被称为“波束竞速(beam Racing)”,同时这也消除了显示同步性。这样一来,图形系统中的高延迟障碍将降为零。

  由于没有像在光栅化中的平面投影,光线追踪技术也解决了 VR 的视场问题。栅格化取决于 3D 到 2D 图像中保留的直线(例如三角形的边缘)。但 VR 则需要一个更宽的视场,它需要一个鱼眼投影,将 3D 图像弯曲到 2D 显示屏中。光栅器会将 3D 图像分解成多个平面来进行仿真。而如果使用光线追踪技术,你可以直接将一个完整的 360 度视野的图像直接渲染到球形屏幕上。光线追踪本身也支持混合的图元:三角形,光场,点,三维像素,甚至是文本,从而在内容优化方面提供更大的灵活性。现在,我们正在研究如何让所有的这些渲染速度比传统 VR 更快。

  光线追踪除了可以减少 VR 渲染的延迟和增加吞吐量之外,它的另一个特征就是可以提升图像质量。回顾本文开始所提到的,电影渲染的图像质量取决于“路径追踪”的图像算法,它其实是光线追踪的一种扩展。如果我们把它转换为基于光线投射的渲染器,VR 图像的质量将会上升到一个新的水平。

  · 实时路径追踪(Real-time Path Tracing)

  虽然我们现在已经可以进行实时光线追踪,但路径的实时追踪仍然是一个很大的挑战。因为路径追踪的计算密度大约是光线追踪的 10,000 倍。这就是为什么电影的每一帧都需要花费几分钟而不是几毫秒来生成。

  在路径追踪下,系统首先追踪来自摄像头的光线,以寻找可见的物体表面。然后再向太阳方向投射另一道光线,检查该表面是否在阴影中。但是,场景中的光线不仅仅是直接来自太阳的。有些光线是间接的,比如从地面或其他表面反射的光。因此,路径追踪器后续会递归式地随机投射,对间接照明进行采样。同时,在这个点上,还需要一个阴影光线投射,以及它自身的随机间接光线投射……这个过程将一直持续到追踪器在每条单一路径上都追踪到约 10 条光线。

  但是,如果一个像素只有一条或两条路径,由于随机采样过程,图像的噪点会很多。它看起来就像这样:

 

  电影图像解决这个问题的方法是追踪每个像素上的数千个路径。每条路径上十条光线,一共有成千上万条路径,这就是为什么路径追踪比单独的光线追踪的成本高 10,000 倍的原因。

  为了提升 VR 路径追踪图像的质量,我们需要一种方法,对每个像素只采样几条路径,同时避免随机采样的噪声。多亏了创新的焦点渲染技术,我们认为这个目标很快就能实现。焦点渲染只需要对图像中心的路径进行详细分析,并且无需追踪更多的光线,便可以进行图像去噪,即将粒状图像直接转换为清晰的图像。

  今年我们与麦吉尔大学,蒙特利尔大学,达特茅斯学院,威廉姆斯学院,斯坦福大学和卡尔斯鲁厄理工学院合作发表了三篇研究论文,都是在解决去噪问题。这些方法可以将一个布满噪点的实时路径跟踪图像转化为清晰的图像,如下图所示:

 

  只用几毫秒的计算,也没有额外的光线,其中的两种方法都使用了 GPU 的图像处理能力来实现。一个使用了 NVIDIA GPU 一种新的人工智能处理能力。我们对神经网络进行了数天的去噪训练,现在它可以自动在数十毫秒内进行图像去噪处理。我们正在增加这种技术的复杂性,并且不断训练网络来降低成本。这个方法令人兴奋,因为它是我们近期发现的几种新方法之一——以一种意想不到的方式,利用人工智能来提高计算机图形质量,并创作出新的 3D 动画内容,为VR世界的普及做出贡献。

  计算型显示器

  现在的 VR 头显中的显示器是相对简单的输出设备。显示器本身几乎不做任何处理工作,只是显示输出的数据。尽管这样的显示器对电视、监控和智能手机来说已经够用了,但在改善 VR 体验方面,显示器本身仍然有巨大的提升潜力:显示器可以更加智能,不仅显示内容,同时显示用户的状态,我们正在探索几种头显显示器的计算处理方法,试图将VR的极限再向前推进一些。

  解决视觉辐辏调节冲突问题(Vergence-Accommodation Disconnect)

  VR 显示面临的第一个挑战就是焦点问题,即所谓的视觉辐辏调节冲突。目前市面上所有的 VR 或 AR 设备都将用户的视觉焦点强制在 1.5 米远的位置,这会有两个缺陷:

  1、当你在 VR 中注视远处或者近处的物体时,你两只眼睛的视觉辐辏与视觉焦点会产生不匹配的情况。这样的不匹配会令用户感到不舒适,这也是现今 VR 产品的一大痛处。

  2、当你在使用 AR 时,你会用真实的深度看向现实世界。而虚拟的图像则需要匹配到你的视觉焦点,否则它们就会变得模糊不清。比如驾驶过程中,正在注视 20 米远的你并不能看清距离你 1.5 米的 AR 地图指示。

 

  我们创造了一个计算型光场显示器原型,通过多角度的光线展示,可以让你在任何深度进行聚焦。这个显示器是对以往技术的一次重要突破,因为计算过程是直接在显示器中进行的。我们不是向显示器中传输单纯的图像,我们正在向其中发送复杂的数据,而显示器则负责将数据直接转化为你眼前的图像。上图中那些看起来有点像昆虫眼中的世界的小网格,必须进行专门的渲染才能传输进显示器,这需要结合了自定义光学,即通过一个微透镜阵列,才能以正确的方式呈现出一个自然的世界。

  第一个光场显示器的研发是从 2013 年开始的。而下周,在 ACM AIGGRAPH Asia 2018 大会上,我们将展示一种新的全息显示器,它利用激光和密集的计算在光的干扰波面上创造光场。本文篇幅有限,很难展示其复杂的工作机制,但它的基本原理是一样的,可以产出质量更高的图像。

  我们坚信这种显示器内计算是未来的一种关键技术。但光场并不是我们使用计算方法解决焦点问题的唯一途径。我们还创造了其他两种可变焦点(或变焦光学)的形式。

  下图的显示器原型利用激光将图像投射到一个漫射全息图上。当你直视全息图时,它会从一个曲面玻璃上反射过来,这样看上去就像是在远处注视它。

 

  我们通过一个小马达来移动全息图或太阳镜反射器,从而控制图像的距离。这样我们就可以将虚拟物体的距离和用户现实世界的视距匹配起来,用户在使用 VR 时就可以自然而完美地聚焦。

  这种方法要求在显示器中进行两种计算:一是要追踪用户的眼动状态,二是要计算正确的光学变化来渲染预扭曲的动态图像。和我们的大多数原型机一样,这个研究版本比最终产品的体积大得多。因为我们要用大型组件来进行研究构建。但实际使用的优化版显示器会更像是墨镜的样子。

  下面是另一个变焦原型机,这是我们与北卡罗来纳大学、马克斯普朗克研究(the Max Planck Institute)所和萨尔兰大学(Saarland University)的研究者们合作发明的。这是一个灵活的透镜薄膜。我们根据用户焦点的变化,使用计算机控制的气动装置来改变透镜的焦距,使得图像始终处在正确的位置。

 

  混合云渲染

  我们有多种方法解决 VR 延迟的问题。其中一个是与威廉姆斯学院合作的成果,它充分利用了我们分布广泛的 GPU 技术。为了在渲染时减少延迟,我们希望将 GPU 移动离显示器越近越好。利用 Tegra 移动 GPU,我们甚至可以将 GPU 放置在用户身上。但是移动 GPU 的处理能力不如台式 GPU,而我们又想提升现有游戏 VR 的图像质量,所以我们用无线连接为 Tegra 组配一个独立的 GeForce GPU,甚至如果要求更高的话,可以配一个云端 Tesla GPU。

 

  这样,一个功能强大的 GPU 就可以计算出光照信息,接着传输给你身上的 Tegra,渲染出最后的图像。这种方法的好处在于,既减少了延迟,又降低了算力要求,同时还提高了实际图像的质量。

  降低延迟基准

  当然,你无法让延迟低于帧速率。如果显示器的更新速度是 90 fps,那么延迟在最差的情况下也不会低于 11ms,因为这正好是显示器等待两帧之间的时长。所以我们到底能将显示器的速度提升到多快呢?

  我们和北卡罗来纳大学的科学家合作构建一个每秒运行 1.6 万个二进制帧的显示器。下图是一个数字示波器的图表,显示了这种显示器对于头部转动时的情况。当你转头时,屏幕更新的延迟会导致晕动症。

 

  在上图中,横坐标是时间线;顶部的绿线震动代表戴着显示器的用户正在转动头部;黄线表示显示器的更新,它的起伏代表显示器中新图像仅用 0.08ms 就能完成更新。这大约是现有市面上最差的消费级 VR 速度的 500 倍。

  渲染器无法达到 16,000 fps 的速度,所以这种显示器需要借助时间扭曲(Time Warping)最新图形的方法来匹配当前头部的位置。我们让它直接在头显中运行,可以加速时间扭曲的处理过程。下图展示了我们定制头显中处理器原型:

 

  不同于扭曲 2D 图像的常规时间扭曲,或是更先进的深度 2D 图像扭曲的空间扭曲(Space Warp),我们的方法可以应用于全 3D 数据集中。上图的最右边展示了在一个实际的 3D 场景进行扭曲的例子,在这个系统中,当你在场景中随意走动时,显示器可以自动保持更新,甚至暂时与渲染器断开连接时也能持续更新。这使得我们能够以一个较低的速度运行渲染器,从而节省电力或提高图像质量,同时,即使在无线连接缓慢的网络时,也能生成低延迟的图形。

  总结

  在第一部分,我们阐述了现今VR头显的渲染管线:

 

  综合上述所有的技术,我们不仅可以描绘出单个的创新产品,更重要的是可以勾勒出一个 VR 系统的全新图景。这个图景几乎消除了所有的同步障碍,它将计算扩展到云端,并直接传到头戴式显示器上。延迟时间缩短了 50-100 倍,同时图像具有电影级的质量。分辨率提高了 100 倍,当然只是你视觉焦点内的图形像素。另外,你也可以自然地聚焦在不同深度上。
 

  我们正在加速将二进制图像在显示屏上的显示,以期让用户体验虚实不分的感受。该系统有着适合的聚焦调节,一个宽阔的视场,轻便的重量和很低的延迟,可以成为一种舒适而时尚的日常产品。

  通过在计算型显示器,变焦光学,焦点渲染,图形去噪,光场,二进制帧等领域的突破,NVIDIA Research 正在为一个新的虚拟体验系统进行创新。随着系统变得更加舒适,便宜,性价比提高,这将成为每个人都可以使用的新的计算界面。

  我鼓励每个人都去体验如今市场上的现代 VR 系统。我更也鼓励你加入我们,共同期待未来 AR/VR/MR的普及,期待通过这些技术掀起的 VR 革命。
联盟会员
合作伙伴
公众平台