Epic概述Unreal引擎光线追踪功能的演变及未来发展方向
Unreal引擎光追功能的演变及未来发展方向
(映维网 2019年09月07日)Unreal最初于2018年3月举行的GDC大会亮相的实时光追,而这项功能在过去18个月里已经取得了长足的进步,并且正在不断提升。从原型代码到免费发布,下面这篇博文将向我们概述Unreal引擎光追功能的演变及未来发展方向。
1. 什么是光追
我们首先来快速介绍何谓光追,并在High Level方面看看它与光栅化的区别(在实时光追出现之前,游戏主要采用的渲染方法是光栅化)。
光线追踪/光线跟踪/光迹追踪是几何光学的一项通用技术。它主要是通过追踪光线路径并采集沿途颜色来确定每个像素在最终渲染中的颜色。因为这能够模仿光线的物理行为,所以它提供了比光栅化更逼真的结果,如柔和,细致的阴影和来自屏幕外对象的反射。
另一方面,光栅化是从后向前绘制场景中的对象,通过变换矩阵来讲3D对象映射到2D平面。它根据存储在网格的信息(颜色,纹理,法线),以及场景中的照明来确定每个像素的颜色。它的速度通常要快于光追,但不能描绘依赖于反射光的效果,如真实反射,半透明和环境遮蔽。
2. 发展催化剂
在过去数十年间,追求极致逼真图像的大片已经用上了光追功能。但一直以来,对影片分辨率实现光追可能需要数小时,甚至数天时间。所以行业难以想象以24fps或以上速度渲染光追帧。
随后出现了两个颠覆性的的技术进步:微软的DXR(DirectX Raytracing)框架和英伟达的RTX平台。对于与英伟达和工业光魔的合作,Epic Games通过“Reflections”演示内容首次在GDC 2018大会展示了实时光追功能,并且以《星球大战:最后的绝地武士》中的人物作为主角。
这个演示内容展示了纹理区域照明,光追区域光影,光追反射,光追环境遮蔽,影视级景深以及NVIDIA GameWorks光追去噪,而且所有这一切都是实时进行。由于Unreal引擎采用了混合方法,无法受益于光追的通道能够继续进行光栅化,从而提高了整体性能。
这只是早期阶段。原型代码尚未向用户开放,而实时运行演示所需的硬件包括一台搭载四枚Tesla V100显卡的NVIDIA DGX工作站(每枚显卡售价约71万人民币),所以软件和硬件都不适用于普通用户。
3. 普及实时光追
五个月之后,Epic Games与英伟达和保时捷在SIGGRAPH 2018亮相了一款实时影视体验:基于保时捷911 Speedster概念车型的“The Speed of Light”。得益于摩尔定律的起效,这个演示内容只需要两枚NVIDIA Quadro RTX显卡。在当时每枚显卡依然需要43万人民币+的投资,但成本已经低于先前的设置。
除了先前演示的功能,“The Speed of Light”同时展示了光追半透明和透明涂层着色模型,以及漫射全局照明。除了制作影视内容外,团队另外创建了一个交互式内容来演示场景的实时性。
快进到今年3月举行的GDC,Epic Games已经准备好以beta功能的形式为Unreal 4.22提供光追支持。为了展示这项技术在12个月内的进展,其合作伙伴Goodbye Kansas和Deep Forest Films创建了一个以数字人类作为主角的实时影视内容“Troll”。
“Troll”的复杂程度要比“Reflections”高一个量级。尽管两者都以24 fps运行,但“Troll”的三角形数量是6200万,16个光照,而“Reflections”只有500万个三级奥星,4个光照。另外,“Troll”是的光追通道是以完整的1080p分辨率渲染,而“Reflections”只以半分辨率渲染,然后按比例放大。“Troll”同时需要对粒子进行光追踪,以及与其他基本组件的互操作性,包括Alembic几何缓存,毛发和皮肤。尽管复杂程度有所增加,但“Troll”只需一枚售价约8500元人民币的NVIDIA RTX 2080 Ti。
右图是实时光追反射
利用免费的Unreal引擎,以及价格相对亲民的显卡,现在人人都能够用上实时光追功能。
4. Unreal 4.23中的光追
当Epic Games开始在Unreal引擎初步实现光追功能时,微软正对DXR框架进行最后的调整,而英伟达则在开发新的硬件和驱动。另外,为了支持光追,Epic Games重构了渲染管道。在SIGGRAPH 2019大会预览的Unreal 4.23已经能够解决由这两个因素引起的不稳定性。
多个方面的性能同样得到了改善,包括天空通道,全局照明和去噪。去噪对于实时光追至关重要,因为对于能够追踪的光线数量而言,预算非常有限。
Epic Games同时实现了交叉点着色器,允许你支持自己的原语类型并渲染复杂的几何体,如毛发或分形。这家公司已经开始提供多GPU支持。Unreal 4.23中增加的Low-Level支持可允许你控制哪个GPU渲染哪个通道。Epic Games将继续支持其他材质和几何类型,包括地形几何,实例静态网格,程序化网格和Niagara sprite粒子。
5. 未来
但攻坚之旅尚未结束。Epic团队依然在努力改进具体的实现。尽管4.23版本已经在性能和稳定性方面取得了重大进展,但在获得“就绪”标记之前,他们尚有很多工作要做。
正如早前提到的一样,Epic Games在4.23版本中增加了Low-Level的多GPU支持,但他们希望提高“即插即用性”,以及支持更多的几何类型。其中一个最具挑战性的例子是具有世界位置偏移的foliage(诸如树叶在风中飘舞动画所需的效果)。
如果你有兴趣尝试Unreal的光追功能,你可以马上下载最新版本的Unreal引擎。另外,你可以参阅Unreal的实时光线追踪文档。