NVIDIA的黑科技3:VXGI体素全局光照
每一个行业都有自己的“圣杯”,例如能源方面的核聚变、医药方面的癌症特效药以及空间探索方面的超光速推进力。 任何领域中“圣杯”的定义都是难以实现和代价高昂的,或者完全是科幻产物。也许这就是我们之所以对此心驰神往的原因所在。
计算机图形领域的“圣杯”就是“实时全局光照”。全局光照是一种渲染游戏环境的方法,它通过模拟光线的行为,从而体现各个表面之间的光线反射效果。然而以光子级别进行自然仿真处理是一项代价高昂的事业,电影中仅仅是有选择地利用全局光照来渲染复杂的CG场景,就是因为这个原因。
这一情况即将有所改变。凭借次世代Unreal Engine 4(虚幻4)引擎,游戏将首次具备实时全局光照渲染效果。而这项技术是由NVIDIA图形工程师与EPIC开发者共同完成的,NVIDIA将其称为Voxel Global Illumination(VXGI,立体像素全局光照)。
● 什么是全局光照?它为什么对游戏逼真度来说如此重要?
首先来看一组对比截图:
传统直接光照效果
全局光照效果
区别很明显吧?通俗的讲,直接光照就是简单的模拟一个或多个光源的照射效果,在相应的位置投射出光和影;而全局光照就是考虑到了光线的直射与尽可能多的漫反射效果,最终呈现出来的光影效果更接近于现实世界。
全局光照指的是对场景周围光线反射的计算。全局光照负责制作出现实环境中的许多细微着色特效、气氛以及有光泽的金属反射效果。自1995年在虚幻1中采用实时直接光照以来,虚幻4引擎中的实时全局光照是在光照方面实现的最大突破!
● 在没有全局光照技术之前,游戏是如何实现更逼真光影效果的?
也许有人会说了,现有的游戏其实光影效果还是不错的,并不像上图1所示那么差。没错,上图的对比是比较直接的、没有附加特效的,其实游戏中还有其它的方法来提高画面真实度,最常见的就是Ambient Occlusion(AO,环境光遮蔽)技术。
目前最先进的水平环境光遮蔽技术 (Horizon Based Ambient Occlusion,HBAO)
但不管是什么级别的AO,都是对光照与阴影的一种模拟,可以说是预处理,开发者认为此处的阴影的颜色应该深一些、或者浅一些、或者柔和一些,所以才会加上去的,而不是通过复杂的光影算法来直接生成的。
● 喜欢浓妆艳抹还是清新素雅?
我们知道传统的图形渲染分为立体建模(顶点着色)和像素着色两个部分,其中像素都是2D平面状的,平铺在模型表面,而光影效果都是需要预先计算每个像素的光照或阴影,就是根据游戏的需要来改变像素颜色。
这种对每个像素反复进行涂抹修饰的做法,既不逼真、也很低效,因为像素显示的并不是真正的光影效果,而是我们认为应该显示的效果,而且越来越多的预处理特效对GPU的ROP(光栅单元)和显存造成了很大的负担。
● VXGI立体像素全局光照:2D平面像素变为3D立体像素
NVIDIA使用了一种非常巧妙的方法,从根本上改变了虚假的光影处理流程。
传统游戏中,所有间接光照(某一表面反射出来的光线)是预先计算的,存储于有光线贴图之称的纹理内。光线贴图让游戏场景能够具备类似全局光照的效果,但是因为它们是预先计算的,所以只在静态物体上有效。
VXGI完全抛弃了将光线贴图存储于2D纹理中的做法,而是将其存储于立体像素中。立体像素就是三维像素,它具有体积,类似于乐高积木。
立体像素采用树状结构分布,以便能够对其进行高效地定位。当渲染一个像素时,它能够有效地询问立体像素树: “哪一个立体像素对我来说是可见的?”根据这一信息,就能够决定接收的间接光线数量(全局光照)。
VXGI完全消除了预先计算的光照,以存储于树状结构的立体像素取而代之,这种树会根据每一帧而更新,所有像素均利用它来收集光照信息。
● VXGI立体像素全局光照:每颗立体像素都是“手电筒”
现在到了最关键的地方,立体像素看起来好像比马赛克更加稀疏,但是所有可见的立体像素都可以执行锥形聚焦光线追踪(给出起点、方向和角度),这样就能沿着小范围的锥形路径生成大致的光线漫反射效果。
每一个立体像素都可以进行多个锥形追踪,游戏中需要根据实际光源的大致方向及反射表面的情况,来设定锥形范围及追踪数量。
实现最终的效果没有捷径,就是通过GPU强大的运算能力,让锥形追踪足够快,以使我们能够实时地对每个立体像素执行一次或多次追踪。对每个像素执行六次宽幅锥形追踪 (每个主要方向各一次) 会生成大致的二次反射间接光照效果。以镜面反射方向执行窄幅锥形追踪能够呈现金属反射效果,在这种反射效果中,每个有光泽的表面都能够反射出整个场景。
● 虚幻4引擎完美支持VXGI,Maxwell显卡运行效率更高
值得一提的是,VXGI提算全局光照技术严重依赖于GPU的浮点运算(通用计算),而不是传统的图形流水线,因此大大减轻了GPU光栅单元的负担。另外,NVIDIA称Maxwell架构对VXGI的运算进行了针对性的优化,新一代显卡在执行体素全局光照时的效率会更高。
VXGI现已加入UE4豪华DEMO
虚幻4引擎已经完整支持了VXGI技术,最新的虚幻4技术演示Demo已呈现除了非常惊人的光照效果,不久之后,将会有一大批使用虚幻4引擎的游戏大作问世,届时Maxwell架构的显卡将会有更佳的性能表现。