近距离完全接触实时光线追踪 深度解析体验RTX ON的秘密
2020-04-15窦乐
窦乐
从像素游戏到2D游戏再到3D游戏,玩家们对于游戏视觉享受的追求永无止境,只有更好而没有最好。2018年下半年开始,NVIDIA GeForce RTX显卡面世,伴生着一项堪称伟大的游戏效果也进入了普及阶段,那就是RealTime Ray Tracing(实时光线追踪),俗称“光追”。光追,也成为现今玩家们经常挂在嘴边的热门字眼。但不得不说,对多数玩家来说,对于什么是光追,光追游戏到底有怎样的效果等问题,仍然一知半解。今天, MC就带你彻底走进光追,解析RTX显卡到底给玩家们带来了怎样具有震撼性的游戏效果。
2018年8月底,伴随着GeForce RTX2080 Ti等显卡的发布,它成为了游戏显卡历史上有史以来“最”快的显卡,可以在几乎所有的大型游戏中提供4K@60fps以上的游戏体验。而且不止如此,RTX显卡还包括了一系列前瞻性的技术,这些新技术的加入也展现出了拥有改变未来PC游戏规则的潜质。不但提高了视觉拟真度,引入了更为逼近现实的图形显示效果,而且还进一步提升了性能。按照NVIDIA的规划,图灵显卡这一系列新“黑科技”的引入,是对当今显卡行业技术标准的一次巨大改进与改善,在已有的行业标准基础上,RTX显卡将其发挥到了极致——这就是RTX光线追踪、人工智能以及高级着色器。而对游戏玩家们来说,RTX光线追踪就是能带来最直观游戏体验升级的秘密武器。
实时光线追踪简析
Ray Tracing光线追踪其实在本质上算是一种渲染技术,它可以通过渲染物理结构的物体上准确的反射、折射、阴影、间接照明以及遮蔽等效果,来逼真地模拟实际场景及其对象的照明状况。光线追踪的基本原理就是通过追踪来自摄像机(或人眼,也就是视觉进入场景的视角),穿过二维观看平面(像素成像平面),进入真实的3D场景并再返回光源的光路,并由此生成PC端显示的图形图像。当光线穿过3D场景时,大概率情况下光线可能从一个物体反射到另一个物体上(反射效果),或者是被物体阻挡(产生阴影效果),或是穿过透明或半透明的物体(产生折射效果)等。所有这些因光线与物体的相互作用而产生的不同效果被组合在一起,最终会产生包含不同颜色和像素的物体实际照明状况,然后将其显示在屏幕上对玩家输出。而光线追踪之所以选择人眼或摄像机到光源的这种反向跟踪过程,是因为它比跟踪从光源在多个方向上发出的所有光线要高效得多。
光线追踪在很早之前就已经出现,并且出现过好几个具有代表性的算法流派之争(MC将另外以单独的文章为大家解析其中的技术细节),但其应用的主要领域仍然是计算机图形学,包括非实时光线追踪(如電影、电视等场景的渲染)以及实时光线追踪(主要是游戏视频)两大阵地,而对于玩家们来说,游戏场景中所使用的实时光线追踪正是与自己切身相关的,也是NVIDIA GeForce RTX显卡的“黑科技”之_。
其实从最初的算法被提出到现在的几十年来,光线追踪一直是电脑图形领域的旗帜与“圣典”,因为它具有独特的功能,可以为屏幕上输出的一切图形图像提供最接近现实情况的拟真度。但在之前,对所有这一领域的研究者们来说都存在一个超级大难题:要获得高质量的渲染结果,每帧需要进行数百万次甚至更多的光线追踪运算操作,并且每次光线追踪操作都必须计算光线与物体撞击的内容以及这种交互如何影响渲染场景的外观。这种庞大的计算量在很大程度上影响了CPU的效率与占用率,以至于电脑和服务器都需要极其巨大的处理能力才能创建复杂的效果和虚拟世界,导致的结果就是我们在电视节目或电影中看到一个简短的采用光线追踪渲染的场景都可能需要好几天的时间才能渲染出来。
不过GeForce RTX显卡的出现改变了这一状况,基于GPU加速的NVIDIA RTX平台的发布,并推出了具有专用RT内核的GeForce RTX和QuadroRTX GPU,从而迅速加速了电影级光线追踪的VFX镜头和影视世界的创建。但是在游戏领域,事情却还有所相同:实时播放的游戏画面(至少每秒30帧),并且玩家可以随时更改游戏中的视角、场景或游戏内容。这就需要GPU每时每刻都提供超高的运算量,而这也必然会导致游戏帧率有较大幅度的下降,而且现有的消费级GPU、CPU的功耗状况与计算能力都不足以提供所有场景、物体的实时光线追踪渲染效果。因此,需要一种与之前都不同的渲染方法,在这种方法中,实时光线跟踪计算可以对游戏的拟真度提供充分的保障,但同时又不会使游戏实际帧率过慢。所以NVIDIA在最初就提出了混合渲染的方法——即对选定的物体与效果进行实时光线追踪计算,以为开发人员多年来精心制作的高保真光栅化世界(也就是传统3D渲染)添加逼真的照明、阴影和反射效果。最终,结果是大幅提升了图像质量,而且保证游戏过程仍可以保持在流畅的帧率标准以上,让玩家在可玩的帧率下享受更加身临其境、逼真的游戏体验,这就是NVIDIA GeForce RTX显卡带来的光追效果。
那么说了光追的基本原理,可能有玩家会问,光追效果在游戏中到底是怎样体现的?我从哪些方面能够感受到光追的效果呢?下面,MC就为大家解答这一疑惑!
RTX光追特效之反射
代表游戏:《战地V》《控制》《重生边缘》《看门狗:军团》等
在RTX显卡将实时光线追踪的反射效果带到游戏中来之前,对PC游戏环境来说,可用的最佳反射技术就是将屏幕空间反射(SSR)与静态环境贴图结合使用,但对于任何游戏开发人员来说,无论代码编写与算法多么出色,实际上都不可能克服其局限性。例如,“屏幕空间反射”只能显示屏幕对象(也就是那些在每帧画面的其他部分中已经可见的对象)的反射。实际上,任何应反射的屏幕外(包括视觉视线以及摄像机后面)的内容都将被“伪造”为低分辨率的立方体贴图。该立方体贴图是应用于表面(例如大楼窗户)的预先生成的反射图像。
立方体贴图的局限性在于,它们只能代表从场景中的单个点观察到的反射环境,因此虽然可以对大型反射对象产生拟真度很高的物理效果,但是呈现出的反射结果却显得呆板与单调,甚至同一反射被复制到不同位置的多个窗口中,这是一种静态的反射效果,而不管当玩家的视线发生变化时,实际场景就完全不同的情况。
尽管确实有一些技术可以根据附近物体与环境的出现来定期更新立方体贴图,但是它们仍然无法克服该技术的固有问题——因此仍然缺乏显示人物、车辆或实际移动效果的能力。而SSR的另一个主要问题是渲染的反射效果不能顯示被遮挡的细节,比如当一个大物体位于另一个物体的后面一样,实际上在真实的反射环境中这应该是可见的部分,但是在SSR中却无法体现。此外,当玩家移动或转动视线,或者玩家离所反射的表面或物体太近时,反射物消失的问题还存在,这都是因为要反映的细节无法进行追踪处理。
为了渲染出最拟真的反射效果,GeForce RTX显卡所支持的光追特效从摄像机或肉眼可见到的表面“投射光线”,当这些光线与物体对象或物体曲面相碰撞时,交点处的详细信息就将和许多其他的交汇光线与碰撞面的许多信息一起用于创建反射效果。而且,为了创建更为逼真的效果,RTX光追特效考虑了每个对象目标物体与表面的属性,以便确定这种表面是否可以反射、是否吸收光线、是粗糙还是光滑以及是否透明等等。同时,在RTX显卡光追特效下,每个物体表面的反射物信息都是实时可变的,会随着场景的物体变化或额外物理效果的产生而进行实时更新,比如在《战地v》中我们就可以看到车身的漆面反射出爆炸火光从产生到消失的完整过程。同时,在RTX显卡的实时光追反射效果下,菲涅尔反射效果会得到完美的重现,根据视线角度的差异会带来不一样的反射物渲染结果,这一切跟实际环境状况非常接近。但如果没有实时光线追踪和RTX光追特效技术的加持,你看到的反射面或许就是完全一样的,每一个反射在所有点上都会异常的明亮。
RTX光追特效之漫反射全局光照
代表游戏:《地铁:离去》《控制》《我的世界》等
GeForce RTX GPU的实时光线追踪功能的另外一个主要特效体现在于能够更准确地模拟场景中表面反射光的效果,从而使游戏开发人员能够在游戏中添加“基于光线追踪的漫反射全局光照”。所谓“全局光照”,它描述的是场景中所有光相互作用的过程,包括直射光从一个表面反射到另一个表面所产生的间接影响等。在RTX实时光线追踪特效面世之前,这一效果通常是通过预先计算的光照贴图、基于图像的光探测功能、反射阴影贴图以及场景预设的虚拟灯光来综合实现强制光照效果。但这些技术的应用有几个缺点,其中最大的缺点就是动态光照无法反弹或照亮超出照明范围的区域。举个例子说,假设有一个黑暗的房间,明亮的光线透过窗户照进来。使用传统技术,所有直接被灯光照射的东西都会被照亮,但是被照亮的区域本身不会反射光线,也无法照亮周围的游戏元素,而实际的情况是被光线直接照亮的物体会通过反射来照亮周围的元素,这就是漫反射全局光照。
通过RTX显卡的光线跟踪,现在能够更准确地对场景中表面的一个或多个间接反射所反射的动态间接漫射光照进行建模,从而使游戏开发人员能够使用更真实的间接照明来制作动态场景,并随着灯光的变化进行实时更新。换句话说,光线会自然反射,照亮物体并照亮周围的细节。而且如果太阳移动或窗帘打开,那么房间的照明就会发生实际变化,使您能够以全新的视角看到房间。
借助实时的“光线追踪漫反射全局光照”,游戏开发人员现在可以创新性地制作出逼真的、适当照明的游戏世界,这些世界可以对照明变化和物体的几何形状变化做出动态反应。这在《地铁:离去》《控制》《我的世界》等游戏中尤其明显,尤其是在《控制》中,变形级别会从根本上影响场景的照明,从而完全改变其外观。
RTX光追特效之环境光遮蔽
代表游戏:《地铁:离去》《使命召唤:现代战争》等
环境光遮蔽(AO)是一种用于在物体或表面遮挡环境光(例如岩石周围)的地方添加接触阴影的技术。这样可以防止物体看起来好像是漂浮在表面上,并使整体场景看起来更真实和地面化。在此之前,同类AO的首选解决方案是NVIDIA自家的HBAO+,它在性能和拟真度上大大超越了SSAO。但归根结底,HBAO+仍然是—种屏幕空间技术,因此无法渲染出屏幕外和隐藏的细节。
使用RTX光线追踪环境光遮蔽(RTAO),可以大大提高质量和准确性,它能够渲染屏幕外的细节和隐藏的细节(例如桌子的底面),从而使场景更加真实。“环境光遮蔽”对于场景的沉浸感和真实感的重要性经常被玩家忽略——因为它不像反射或爆炸效果那样宏大而夸张,也不像玩家角色的阴影那样可以立即引起注意。但是,如果没有它,一切看起来都会是“关闭”的——比如装甲的折痕处将没有阴影,两个墙相接处不会有黑暗的角落,而且所有的东西看起来似乎都漂浮在其他表面的顶部。
RTX光追特效之阴影
代表游戏:《古墓丽影:暗影》《使命召唤:现代战争》等
阴影效果相信玩家们都不会陌生。而事实上,近些年来,PC游戏阴影已经走了很长一段路,添加了许多功能,使它们更接近于复制现实世界中的阴影外观。在光追阴影效果之前,游戏开发人员基本都需要谨慎地平衡传统阴影贴图的属性,以最大程度地提高准确性,平衡细节和查看距离,同时避免阴影混叠、阴影粉刺(错误的自阴影)和阴影分离(无法与阴影的基础部位完全连接)等问题。即使被称为最接近真实效果的NVIDIA HFTS混合视角锥体阴影技术,也和所有其他光栅化阴影技术一样,都是一些巧妙编程的技巧的集合,以尝试模拟真实阴影的外观。
而在使用RTX光线追踪技术后,这些问题不再是一个问题。取而代之的是,RTX光追阴影会在整个场景上投射数百万条光线,以真实地说明遮挡光线的角色、物体和树叶等,这应该是游戏发展史上第一次真正产生如此逼真的阴影效果。而且,除了添加精确的阴影之外,RTX光追阴影技术还可以支持大型复杂的交互,实时半透明阴影以及大量其他技术,其详细程度远远超过了以前可能实现的水平。特别的是,RTX光追效果使开发人员可以使用面光源,从而导致更大的半影投射和物理效果上正确的接触硬化,从而使阴影在靠近投射对象时变得更清晰。而在《古墓丽影:暗影》《使命召唤:现代战争》等游戏中,玩家们可以清楚地看到RTX光追阴影带来的好处。
表面反射、阴影,环境光遮蔽和漫反射全局光照,这些特效都可以通过RTX光线追踪实现。而到现在为止,已经有数十款已经发售或即将发售的游戏实现了对光线追踪效果的支持,这也为玩家们提供了前所未有的拟真度、保真度和沉浸感。如果你想首先接触未来游戏的拟真特效,从RTX光追效果开始无疑是最合适的做法。