咨询电话:400-810-1418服务与监督电话:400-006-6572

软硬件如何实现实时光线追踪?

发布时间:2019-10-31 09:21:14

自实时光线追踪发布以来已经有一年多时间了。那么现在都有哪些软件可以实现?需要什么硬件?是否可以运用到制作流程中呢?今天这篇文章我们来讨论这个问题。

光线追踪是一种非常先进的技术,过去一段时间一直受到硬件和软件的限制,因此无法实时重建。去年三月份Epic Games在虚幻引擎中首次展示了一个用微软全新DXR架构和NVIDIA RTX技术处理Volta GPU的实时光线追踪演示。在拥有四个Tesla V100 GPU的NVIDIA DGX Station上运行。其中灯光可以以交互式方式移动,因为光线追踪阴影和照片级真实感的反射都是实时渲染出来的。可以说是近几年来是CG行业最大的创新之一。尽管技术还处于起步阶段,还需要更广泛的测试,但这是CG技术迈出的一大步。

1.webp.jpg

那么今天我们来研究下实时光线追踪的状态,简要了解下UE 4 RTX的实现过程。对于我们普通用户来讲这也是目前唯一非常容易实现的方法。

游戏

实时光线追踪技术作为一种即将改变游戏的技术会被推向市场。当然不是现在,是在不久的将来。目前市场上只有几款3A游戏利用这个技术。从现在市场流行的游戏中,效果最好的实时光线跟踪的游戏是《Control》。

《Control》是由芬兰游戏开发商Remedy继《心灵杀手》和《量子破碎》后开发的一款以超自然为主题的悬疑动作射击游戏。用实时光线追踪为游戏中的光效、阴影和反射带来了极为真实的渲染,也为《Control》游戏的画面带来了惊人表现力。《Control》应用了光线追踪技术后,游戏中的效果不再是由光栅化处理预先设置好的光影贴图,所有的光线都将由GPU实时演算,并且以正确的物理效果呈现在玩家眼前。《Control》是第一批支持实时光线跟踪效果的游戏。且PC版的《Control》还支持NVIDIA DLSS技术。

2.webp.jpg

《Control》中还支持NVIDIA DLSS技术。DLSS技术能够为游戏性能表现带来巨大的提升,在极高分辨率最高画面特效下,开启DLSS后游戏帧数有着近一倍的提升。

3.webp.jpg

从今年的E3和Gamescom游戏展可以看到,包括《赛博朋克2077》、《看门狗:军团》、《消逝的光芒2》在内等诸多即将发布的大作都加入了实时光线追踪的支持。许多开发人员等待RXT硬件更广泛的可用性。现在只有百分之几的玩家可以运行使用实时光线追踪的游戏。因此,预计游戏行业需要数年时间才能将其作为一个标准。

CG

实时光线追踪令人非常兴奋,不仅因为它为我们提供了更精美的游戏。而对于我们CG行业每天进行渲染的人来说也是一次重大的革新。因为有了实时光线追踪的加持可以更快地工作,进行更多的迭代,节省无数小时的渲染时间并提供更真实的效果。所以DCC软件,渲染引擎,游戏引擎都需要实时光线追踪。

软件

在软件方面,目前Chaos Group在研究和开发实时光线追踪。他们正在研究的两种产品一个是V-Ray Next GPU,另一个是Project Lavina。对于Vray Next GPU大家比较熟悉,它一直内置在Vray渲染器内部。但这些年来一直感觉受重视程度不够,总感觉差点意思。Project Lavina是Chao Group于2018年8月在Siggraph 2018上介绍的。它基于微软DirectX光线跟踪(DXR)技术的新型实时光线追踪系统。目标是实时(24-30 fps)渲染,用于在100%光线追踪环境中实时探索和操作Vray场景。

Chaos Group表示Project Lavina将与V-Ray Next中的V-Ray GPU架构分开,后者属于“快速交互式渲染”阵营。也就是说它将成为其现有产品的一部分,一旦整合方案解决,艺术家们将能够亲自试手一下实时渲染的Lavina系统。不过官方没有给出具体什么时候才发布。

4.webp.jpg

在这三个场景中,RT内核与纯CUDA版本相比,分别提供了1.78x、1.53x和1.47x的加速。随着开发人员在未来几个月接近官方版本,这些结果应该会变得更好。

此外,一个月前Blender开发人员在博客中宣布,RTX技术将加速Blender Cycles渲染。在某些情况下,收效相当巨大。下图显示了在CPU上使用CUDA和OptiX(越小越好)对多个周期基准场景测量的渲染时间:

5.webp.jpg

Unity正在开发实时渲染,有望在未来版本的引擎中实现。现在要实现的话需要许多步骤,如下载单独的实验渲染流程生成和更改配置文件中的设置。所以现在实现起来并不容易。不过前不久Unity Technologies2019在哥本哈根联合会的主题演讲中,放映了《异教徒》7分钟的完整版,展示了游戏引擎在实时渲染方面的能力。Demo中还展示了Unity的高清渲染流程(HDRP)的功能,包括实时区域和体积光,以及后期处理效果。HDRP和VFX图形都正式进入预览阶段,但即将发布的Unity 2019.3中作为稳定的制作就绪版本发布,目前已公开测试。

对于Octane渲染器我们关注的不多。但Octane Render-RT已在在Octanerender 2019 RTX中可用(现在作为实验预览提供)。

最后就是虚幻引擎4了。从4.22版开始,引擎中就提供了实时光线追踪。几天前发布的4.23版本中变得更好了,设置起来也很容易。

硬件

英伟达:对于实时光线追踪,需要满足指定的硬件要求。尽管实时光线追踪技术已经发布一年多了,但我们仍然只能在图灵生产线的N卡上使用(所有型号都是从20xx和新的quadro型号开始)。英伟达还为早期的Pascal卡(10xx)提供了可以模拟RT内核的驱动程序,但是如果没有真正的内核,渲染速度多数情况都没什么变化。

AMD仍在开发新的显卡,目前市场上还没有采用RT技术的显卡。当下一代RDNA(该公司新图形架构的官方名称)问世时,将使用“实时游戏的选定照明效果”,这意味着我们在2020年之前不会从AMD获得实时光线追踪的支持。

玩下实时光线追踪?

那么既然虚幻引擎4在这方面玩的比较6的,下面来看看在UE4中如何玩转实时光线追踪。

要在UE4中实现实时光线追踪,就需要有NVIDIA RTX卡(最好是2080 TI)、Windows 10(至少构建1809)和Unreal Engine 4.22或更高版本,建议至少使用Unreal Engine 4.23-RT技术,因为在这一点上更为完善和稳定。只需启动新的UE4项目,在项目设置中搜索“rhi”,并将其更改为“direct 12”。然后搜索“光线跟踪”,启用它。然后重新启动这个项目文件,就可以玩耍了~

6-1.webp.jpg

6-2.webp.jpg

6-3.webp.jpg

UE4有实时光线追踪阴影,由RT技术提供的真实阴影,模拟环境中对象的软区域照明效果。这意味着对象的阴影在接触曲面附近的阴影比在其变软和变宽的地方的阴影更尖锐。不需要费时调整过多阴影类型和分辨率。立刻就会得到漂亮的阴影效果。可以从“灯光详细信息”面板控制它们。还可以启用/禁用阴影并控制源、大小/角度以更改阴影的柔和度。

7.webp.jpg

光线跟踪反射:在Post Processing Stack中启用它。不用太多的调,只需增加样本数,就可以得更好的反射。在Unreal Engine4.23中,通过返回到场景中的Reflection Captures ,改进了对多重反弹Ray Traced Reflections(RTR)的支持。这意味着显示黑色的内部反射(或反射内部的反射)或者设置最大反射距离的地方,将回到这些光栅技术,而不是显示黑色。

8.webp.jpg

光线跟踪环境遮蔽(AO):精确阴影区域环境光遮蔽更好地衔接环境中的物体,如阴影角落和边缘的墙壁相交或增加深度裂缝和皮肤皱纹等等。

光线跟踪的GI:在Post Processing stack控制。可以增加每个像素的采样数和反弹数。这两种设置都大大提高了GI的质量,但都代价比较大,需要大量的处理能力。建议在内部场景中使用面光的GI,而不是天光。因为面光源在相同的采样数下可以提供更平滑的结果。可以将RTGI和面光与直射光一起用于日光模拟。也可以将其与烘焙照明一起使用。

因为在实时光线跟踪技术上UE4一直走在前面,所以这里也着重讲解了在UE4中的设置和参数设置。总体来说目前实时光线跟踪还处于初级阶段。但我想随着硬件和软件技术的不断升级未来都应该是实时的。只是一个时间问题~

参考来源:

https://evermotion.org/articles/show/11621/the-state-of-real-time-ray-tracing-technology-in-cg-industry