• 1
  • 2
  • 3
  • 4

首页 / 行业

计算机图形学的“圣杯”——光线追踪技术

2019-08-08 11:25:00

对于了解3D图形技术的人来说这个行业正在发生一件真正令人兴奋的事情——实时光线追踪技术的发展。它通常被描述为计算机图形学的“圣杯”,光线追踪技术是使用一种模拟真实世界光线行为的技术来生成3D场景,从而为开发人员提供工具来制作令人难以置信的逼真视觉效果。2016年Imagination公司推出了世界上首款专用的光线追踪加速器。它所提供的强大性能使得该项技术能够应用到实际场景中,2018年英伟达(NVIDIA)为个人台式电脑推出了硬件平台来支持他自己版本的技术,并命名为”RTX”。

在继续深入之前,我们有必要了解一下为什么光线追踪技术如此的重要。光线追踪为开发人员提供了确定场景结构的工具,提供了一种直观的方法来确定3D场景中对象之间的关系,其中一个例子就是反射。假如在一款游戏中有汽车、水坑和地面上熊熊燃烧的火,可是画面里我们却看不到火光,采用光栅化技术火光不能反射到汽车窗户和水坑上,但通过光线追踪技术火焰的反射效果会真实的呈现在屏幕上,这不仅仅是为了创造更加完美的图像,而且还会对游戏玩法产生根本性的影响。想象一下一个敌人匍匐在一个有窗户的地方,玩家躲在角落里,通过光线追踪玩家可以看到敌人在窗户上的倒影,如果采用光栅化技术则需要大量的工作。

光线追踪技术所能够带来的自然效果正是它多年来一直被主要的电影制片厂用于动画电影和效果创作的原因。皮克斯电影“汽车总动员(Cars)”中闪电麦昆(Lighting McQueen)的闪亮反光、“钢铁侠(Iron Man)”的反光服以及“变形金刚(Transformers)”中的伪装机器人都是得益于光线追踪技术。

你可能会问,既然光线追踪技术如此之好,为什么用它来创建游戏和其他3D场景还不是一项标准呢?原因是从计算性能的角度来看,它的代价非常的“昂贵”,超出了传统硬件的能力范围。顾名思义当跟踪光线时处理器必须跟踪从光源发出的所有光线,并计算每个光线如何与场景中的每个对象和表面交互。当每一束光线照射到一个物体时,根据物理表面的类型,它可能会被吸收、反射、折射或者被散射,这可能会产生数千条额外的光线,而且都需要进行跟踪计算,这个过程被称为全局光照。光线追踪的性能度量单位是每秒数百万条光线,这是理论上的度量标准,类似于GPU的填充率单位GPixels/sec和GPU的计算性能单位GFLOPS。

在电影制片厂强大的工作站可以配备高端的显卡,这会非常的耗电,它可以不计时间成本和功耗来在本地构建场景中所需要的光线情况。然而对于便携设备或汽车上的仪表则无法完成这样的处理过程,需要的效果要达到每秒60帧(fps)或更高,这同时会受到移动电源电量的限制。

为什么我们要采用光栅化技术?

由于这些限制3D图形的标准是一种称为光栅化的技术,即使用三角形网格来创建3D对象,然后会被映射到一个二维平面上进行纹理和阴影的处理,这种方式相比光线追踪对于计算性能的要求更低一些,并且由于其高度并行的特性,现在GPU已经被高度的优化从而更加有效的分析和处理阴影三角形。

然而决定每个像素外观的着色器只能“伪造”真实世界的灯光,这限制了真实感,虽然采用基于光栅化的技术可以用来模拟光线追踪,比如高光材质,但是计算负载会增加,处理带宽会增大,整体能耗成本也大大提高,同时会增加复杂性使得效率明显降低,因此权衡各方面的情况采用光栅化技术模拟光线追踪效果是不合适的。

与光栅化相比,光线追踪是一种内在优雅的解决方案,它的渲染算法可以用来创建不依赖阴影映射(Soft Shadow)或其他光照(Lighting)等工具的光照阴影效果。举个例子,在栅格化中动态立方体(Cube Map)映射经常被用来模拟反射,然而这些不仅耗费计算性能和带宽,而且由于分辨率的限制,当更新和进行像素化时还会有延迟问题。类似地级联阴影映射(Cascaded Shadow Map)它使用百分比的过滤方式来确定软阴影效果,这就需要额外的几何处理、计算、像素着色等大量的工作,并且消耗额外的带宽。那么这些问题在光线追踪看来,都是开销极小的微不足道的问题。

这并不是说光线追踪就不复杂,需要专业的知识有效的利用它,一旦这项技术被理解并被内置到工作流程中就会让开发人员更加有效率的工作,让他们更加专注于应用程序方面的开发。

为了将图形技术提升到一个新的水平,转向光线追踪技术是很有意义的,下图是Imagination在2012年首次发布并展示了光线追踪架构发展过程。

PowerVR光线追踪技术的发展

从另一个角度来看

Imagination公司的光线追踪技术做了两件开创性的事情,首先我们推出了“混合渲染”的概念,传统的光栅化技术用于大部分场景,而光线追踪技术用于最重要的部分,即反射和阴影,从而大大降低了所需的计算性能和带宽。

第二种方法是使用一种叫做“反向光线追踪”的技术,这推翻了光线的概念,从光源发出的光线经过周围场景的发射最终到达我们的眼睛,相反,光线从观察者或“相机(camera)”投射到场景中,当光线到达表面时就可以被追踪到光源,如果不能追踪到光源那么就不需要计算了,这样就大大降低了计算的复杂度。

光线追踪将光线投射到场景中来构建算法

NVIDIA在其新的基于图灵架构的显卡上采用了类似的方法,传统的光栅化硬件和专用的芯片相结合,专门设计用于加速一些光线追踪的计算。当然不提供相应的API和软件的硬件是没有用的,NVIDIA已经与微软合作使得DirectX12 API开始支持光线追踪,而采用PowerVR光线追踪的开发人员可以通过开放标准使用OpenGL ES™和Vulkan®扩展库。

随着游戏“战地5”的更新补丁提供对RTX的支持,开发者DICE首次将光线追踪引入主流市场,需要注意的是由于性能的原因,光线追踪只在游戏中应用于发射面,如汽车面板和水坑,阴影仍然需要采用光栅化处理。尽管如此在游戏中启用光线追踪功能所带来的巨大性能冲击还是招致了一些产品评论者的批评,尤其是考虑到这款显卡的购买成本超过了1200英镑——这是消费级显卡有史以来最高的价格。

值得注意的是“战地5”是第一款支持RTX的上市游戏,Epic公司还承诺提供更多的技术支持,同时还宣布支持其广泛使用的虚幻引擎,看着这些发展如何影响市场将是一件非常有趣的事情。

尽管围绕着NVIDIA RTX显卡的发行和游戏中的性能存在诸多问题,但让实时光线追踪成为现实是一项值得关注的进步,应该受到每一个关心图形技术发展的人的赞赏。

不同的架构如何进行比较?

Imagination公司最初推出的“Wizard”光线追踪GPU结合了PowerVR Series6 GPU和光线追踪单元(RTU),专用于加速光线追踪,而且在智能手机功率范围之内(采用28nm工艺技术,相比现在的7nm工艺(提供更高的密度,功耗更低)落后很多)。我们的硬件比传统的GPU能够快100多倍,这使得光线追踪第一次成为现实。Imagination公司在这方面领先于市场,到2016年已经生产出集成到PCIe评估办卡的器件,用于演示和开发的目的。到目前为止PowerVR光线追踪相关专利已经超多220项,包括已经授权和正在申请中的。

将Imagination的架构与NVIDIA的解决方案进行比较是非常有趣的,PowerVR光线追踪在硬件上提供了一个场景层次生成器(SHG),SHG生成一个边界体积层次数据结构,该结构的设计可以大大提高了检测哪些三角形与哪些光线相交的效率。使用传统蛮力的方式需要测试每个三角形和每一条光线,这在计算上代价太大而且无法做到实时执行。

PowerVR光线追踪

PowerVR场景层次结构生成器将场景分割为一个由包围框组成的层次结构,本质上是一个包含所有场景的框架,然后按层次将其分割为更小的模块,直到最小的模块包含数个三角形模型。这种分层方法通过检查光线的交叉,然后反向追踪直到找到正确的三角形,从而可以减少测试的数量。

虽然Imagination和NVIDIA的核心在硬件上都包含光线/模型盒的交集,并且都使用了包围体层次结构(BVH)数据结构,但是在硬件上只有Imagination拥有场景层次生成器(SGH),这意味着我们能够更有效的支持动态几何模型场景(比如游戏中的动画角色)。

PowerVR的另一个关键区别点是可选择模块,称为光线相关引擎(Ray Coherency Engine)。当光线照射到三维场景中的天然材料时,它们往往会随机散射,因此不太可能是相关的。这种随机光线的行为意味着当光线被处理时它们会在不同的方向碰撞和发散,从而与不同的盒子/三角形模型相交,这大大降低了内存访问效率,从而降低了性能。相关引擎发现光线之间的共性,然后将它们组合在一起,从而提高芯片的运行效率。

AMD目前还没有推出专门用于光线追踪的硬件,而且使用着色器来执行所有光线追踪计算,这样就导致性能大大的降低了。

NVIDIA RTX

由于可以放入场景的光线数量有限,为了在可接受的帧率下产生高质量的结果,需要对图形进行去噪处理,NVIDIA使用Tensor核心来实现这一功能,而Imagination则使用PowerVR神经网络加速器(NNA)来执行这一重要的后处理操作。

我们经过验证的解决方案是非常高效的,Wizard SoC仅需要2W的功率就可以正常运行,而使用较老的28nm工艺技术构建的演示板卡则需要10W左右的功率,以600MHz处理峰值速率为300MRay/sec。

NVIDIA声称图形芯片在1.5GH/z时处理速率可达到8GRay/sec,是时钟频率的2.5倍,功率效率为225W。在2.5x时钟条件下PowerVR光线追踪性能可达到750MRay/sec,甚至还可以达到8GRay/sec的性能,因此我们可以合理的得出结论,我们在现代SoC实现的解决方案将比NVIDIA的方案更加的高效节能。

AMD光线追踪

想象一下其中的可能性!

现在光线追踪的第一次尝试已经进入到主流消费者的视野,他们可能想要看到更多的进展。一旦玩家开始意识到光线追踪所带来的好处,他们就会希望自己的移动设备、游戏机甚至汽车也能够有同样的体验,光线追踪还可以为许多视觉体验带来巨大的价值。厨房零售商可以进行3D渲染,使客户可以看到他们新买的产品,光线追踪可以把展示效果提升到新的水平。

光线追踪可以用于增强数字仪表和3D汽车模型的真实感,它可以从相机上获取数据,准确的将环境光反射到3D汽车模型上,这样司机就可以更准确的判断距离。

虽然AR和VR应用还没有进入到主流市场,但仍然有很多人相信它们最终会成为主流。当涉及到VR时为了确保一切正常还需要可变采样率(variable sample rates)和注视点渲染技术(foveated rendering),结合我们的混合光线追踪技术实现起来更加的容易。

在本地处理还是放在云服务端?

虽然NVIDIA的解决方案专为功耗不高的游戏PC机而设计,但我们注册专利的光线追踪技术,设计理念以“移动优先”,是一种理想的选择,可以从电池供电的设备(如智能手机)扩展到便携式或永久供电的游戏机平台。

基于云计算的游戏也被广泛预测将作为本地硬件的补充,并最终取代使用互联网的高性能游戏架构,为使用低配置的玩家提供高质量的游戏体验。然而功耗成本和散热管理是服务器集群面临的关键挑战。光线追踪在这种情况下是非常有效的,事实上可以帮助更多基于云服务的游戏提升体验效果。游戏中每个玩家的状态信息可以进行实时更新然后发送给服务器上的其他玩家,光线追踪技术用于生成每个玩家独特的场景视角,而不是采用光栅化来处理每个视角中的几何模型。这可以大大降低服务端的系统功耗,同时带来惊人的视觉效果。

光线追踪是一项颠覆性的技术,有望彻底改变3D图形技术的发展。Imagination公司推出的PowerVR光线追踪是一种可广泛使用的可授权的架构,能够支持独立的光线追踪处理器或者混合光线追踪/光栅化平台。如果你想要创建能够以较低的成本和更高效的方式来展示最先的图形效果的产品,那么你现在就应该和Imagination取得联系。

光线追踪计算机图形学实时图形技术

  • 1
  • 2
  • 3
  • 4

最新内容

手机

相关内容

  • 1
  • 2
  • 3

猜你喜欢