硬件加速和软件加速的光线追踪有何区别?
2019-06-15 09:00
真正的区别不是硬件和软件之间,而是GPU加速有无专用RT核心之分。
实现光线追踪不一定需要专门的硬件,但您肯定想拥有它。
当然,基于软件的光线追踪已有几十年的历史,一直为电影制作者所用,效果也不错。
不过如今,如果您想实现实时的光线追踪,那么一个专用硬件的优势则会凸显,如内置于NVIDIA Turing架构中的RT核心Core。游戏需要实时光线追踪。
实时光线追踪曾经被认为是图形的“圣杯”,它将电影制作者长期使用的技术带给了游戏玩家和创作者。
得益于今年开发人员推出的一系列全新3A游戏,以及去年推出的NVIDIA GeForce RTX GPU,这个曾经难以想象的想法成为了主流。
数百万人现在正在开发PC,这些PC受益于RTX中内置的RT核心和Tensor核心,正在给用户带来光线追踪的增强体验,许多人认为这些体验将持续数年甚至数十年。
光线追踪自20世纪70年代以来一直存在,但真正使它焕发“新机”的是具备专用核心的GPU加速光线追踪。
去年,随着微软DirectX光线追踪(DXR)API的推出,GPU加速光线追踪算法获得了新的动力。对于游戏玩家和创作者来说,这是个好消息。
光线追踪不是新的概念
什么是光线追踪?看看你周围,那些被光束照亮的物体。从目光后方的光束,到光与之交互的物体的路径,就是光线追踪。
这是IBM的Arthur Appel在1969年首次描述的“固体遮阳机渲染技术”(“Some Techniques for Shading Machine Renderings of Solids”)。
感谢Turner Whitted,Lucasfilm的Robert Cook,Thomas Porter和Loren Carpenter,CalTech的Jim Kajiya等先驱者的努力,光线追踪现在已成为电影和计算机图形行业的标准,用于创造逼真的照明和图像。
然而,直到去年,几乎所有光线追踪都是离线完成的,这是一个计算密集型的过程。即使在今天,您在电影院看到的效果也需要庞大的配备CPU的服务器场。不过,游戏玩家希望玩互动的实时游戏,他们不愿意等待每帧几分钟或几小时的时间。
相比之下,GPU可以更快地操作,这要归功于它依赖大量计算核心来更快地完成复杂任务。而且传统上,另一种渲染技术被使用,称为“光栅化”,即在二维屏幕上显示三维物体。
通过光栅化,屏幕上的对象可以从虚拟三角形或多边形网格中创建3D模型。在这个虚拟网格中,每个三角形的角(称为顶点)与不同大小和形状的其他三角形的顶点相交。它速度很快,效果也不错,即使它仍然不如光线追踪能做的那么好。
GPU作用于光线追踪
但是,如果您使用这些GPU及其并行处理功能来加速光线追踪呢?这就是GPU加速软件在光线追踪中的用武之地。2009年推出的NVIDIA OptiX针对具有GPU加速光线追踪的设计专业人士。在接下来的十年中,OptiX在连续几代NVIDIA GPU上实现了稳定的速度提升。
到2015年,NVIDIA在SIGGRAPH大会展示了光线追踪在几秒钟内将CAD模型转变为逼真的图像(与照片几乎无法区分),这加快了建筑师、产品设计师和图形艺术家的工作效率。
GPU加速软件光线追踪于去年年初得到了微软的认可。微软推出了DXR,通过DXR API全面支持NVIDIA RTX光线追踪软件。
可提供高性能的实时光线追踪需要两项创新:专用光线追踪硬件RT核心,以及用于高性能AI处理,以实现高级去噪、抗锯齿和超高分辨率的Tensor核心。
RT核心通过加快找出光线与场景的3D几何体相交的位置来加速光线追踪。这些专用核心加速了基于树的光线追踪结构,即边界体积层次结构或BVH,可用于计算构成计算机生成图像的光线和三角形相交的位置。
Tensor核心于2018年首次与NVIDIA Volta架构发布,旨在帮助企业和科学计算加速AI算法,并通过一种称为NVIDIA DLSS的特殊AI技术,即深度学习超级采样的缩写,来进一步加速图形密集型工作负载。RTX的Tensor核心使其成为可能。
Turing提升工作效率
您可以通过比较Turing和我们上一代Pascal架构渲染单帧《地铁:逃离》(Metro Exodus)的速度来了解其工作原理。
如上图所示,在Pascal GPU上完成的光线追踪,在Turing上只需要五分之一的时间即可完成。
NVIDIA和我们的合作伙伴通过一系列产品推动Turing进入市场,目前的产品范围覆盖最高性能产品一直到入门游戏玩家产品。
广泛的支持
毫无疑问,实时光线追踪是下一代游戏的标配。一些最重要的生态系统合作伙伴正在为游戏中的实时光线追踪铺平道路。
微软DirectX 12内部的多媒体编程接口是一个光线追踪组件,他们称之为DirectX光线追踪(DXR)。如果由GPU启用,每台PC都能够加速光线追踪。
在3月的游戏开发者大会上,我们在Pascal和Turing GTX GPU上启用了DXR加速光线追踪。
可以肯定的是,早期的GPU架构(如Pascal),就是旨在加速DirectX 12的设计。因此,在这个硬件上,这些计算是在可编程着色器核心上执行的,这是一种与GPU的许多其他图形功能共享的资源。
因此,即使实现光线追踪的方法有很多,但在玩使用光线追踪效果的游戏时,Turing将始终表现更好。并且,它将不断增强最受欢迎的游戏的性能优势。
EA的3A引擎Frostbite,支持光线追踪。 Unity和Unreal共同支持全球90%的游戏,现在在其引擎中支持微软DirectX光线追踪。
总的来说,这为成千上万的游戏开发者在他们的游戏中实现光线追踪开辟了一条简单的道路。
迄今为止,我们有数百万玩家在RTX硬件上玩游戏,即配备RT核心的GPU加速硬件游戏。而且,这个数字每周都在增长。