TGDC | Alekos Caporali:移动游戏中如何实现光线追踪

GameLook报道/8月14日至8月17日,由腾讯游戏学堂举办的2022腾讯游戏开发者大会(Tencent Game Developers Conference,以下简称TGDC)将正式举行。
大会以Inspire Six Senses为主题,汇聚国内外顶尖游戏从业者以及学界专家学者,以激发游戏的创意力、想象力、洞察力、科技力、影响力和凝聚力,共同拓宽游戏产业的边界与可能性。

8月16日TGDC Final-技术专场上,来自Imagination图形技术美工专家Alekos Caporali进行了题为《移动游戏中如何实现光线追踪》的分享。
以下是分享实录
Alekos Caporali:

大家好!我是Alekos Caporali,我是 Imagination Technologies 公司演示团队的图形技术美工专家。本次分享旨在向大家展示我们公司如何让光线追踪技术为大家所用。

我们在移动端实现光线追踪取得了重大进展,本次分享中我将介绍光线追踪的强大功能,介绍其在移动端游戏环境中提供的视觉增强效果,我会从技术美工的角度来演示如何轻松实现一些功能。但我会先向可能不了解我们公司的各位介绍一下背景知识,然后再切入正题。
我们公司在过去的30年里一直致力于设计GPU,我们的技术在移动设备端很强大,同时也为台式机 汽车和许多其他应用市场提供 技术。
举个例子 在一些最早的主机游戏中就有我们的技术,老派玩家可能会记得我们公司为我最喜欢的一款游戏主机提供技术支持,那就是世嘉公司的Dreamcast。正是有了这些经验 我们有机会从2007年起开创硬件光线追踪研究的先河。我们如今已成为移动GPU领域和移动硬件光线追踪领域的引领者。

但并非所有的光线追踪硬件都一样,在评估不同解决方案的性能时需要考虑几个要点。为了帮助识别现代硬件中不同等级的光线追踪能力,我们设计了一张图表。图表的关键是,每上升一个等级 对效率的关注就会提高。市场并非总是基于效率而变化,比如说 最近发布了带有光线追踪功能的第二代台式电脑硬件,仅提供更多的光线追踪处理便提高了性能,这自然需要更大面积的硅片和更多的功耗。
但这种粗暴的方法并非是可行的解决方案,比如对于移动设备等需要在功耗预算内运行的设备而言,今天我不会详细介绍这里显示的所有等级。但大家需要明白,0级和1级是以前的解决方案如今已经很少见了。它们是开启光线追踪的初级解决方案,2级和3级最流行,也就是当今常用的基于软件的光线追踪。

最后是我们今天要集中讨论的两个等级,4级在层次型包围盒上增加了相干性排序的硬件,也是目前移动硬件光线追踪的最佳实现方式。这是我们公司GPU中的硬件光线追踪技术。然后是5级,也是由我们公司开发的更先进的系统。并在2016年首次展示于PowerVR GR6500测试板,处理也是通过专门的硬件解决方案来分类,这也更有效。总的来说 有了我上面提到的最后两个等级。

我们公司研究出了基于以下方式提高效率的系统,一个表面上反弹角度一致的光线会被排在一起,因此称为相干性排序。这种技术以智能的方式优化整个光线分选过程,减少硬件运行的压力,这使得其成为非常适合的移动解决方案。

给大家介绍了我们公司的工作内容之后,以下是本次分享的大致介绍。我的演讲分为两个部分,首先 我会给大家演示如何实现全光线追踪,解释其背后的一些功能。 之后 我会给大家就如何创建针对游戏中光线追踪的资源提供建议。然后在第二部分 我会给大家展示我们最新的光线追踪演示,它完全建立在O3DE的游戏引擎上,该引擎可以轻松实现实时光线追踪的全局光照。最后 我会指导大家完成不同步骤,以便让大家能够首先了解RTGI的功能,然后能够使其在游戏引擎中起作用。

我们在之前的演示中是如何实现光线追踪的呢?我要播放的第一个视频是我们公司开发的一个产品,以便展示我们如何实现完全光线追踪。
在明显的移动端游戏环境中 有针对移动性能预算的优化功能。这个演示视频在我们内部引擎上运行,以防大家还不了解,我先介绍一下光线追踪的概念。光线追踪其实是改变游戏规则的3D图形技术,它模仿了光线在现实世界中的行动方式,而我们将要看到的仅仅展示了其部分能力。

我们一起来看这段演示视频,大家可以在网上我们的YouTube账号上观看这段演示视频,有电影视频版和特性演示版。如果您感兴趣,可以随时在优酷和YouTube 上观看。

现在我先带大家了解一下刚才视频中看到的内容,这是我们在2020/21年开发的,它在移动预算中实现了光线追踪的大部分功能。大家可以在这张图片上看到概要情况。首先,大家可以注意到根据不同材质,表面形成了逼真的反射,这在红框中突出显示。大家可以看到绿框中硬边的光栅化阴影替换成了光线追踪软阴影,而这极大地增强了场景的真实性。最后大家在黄框中可以看到实时全局光照如何助力环境光,以实现与现实生活中一样更好更真实的效果。


现在我们了解了光线追踪能够提供的主要功能,但这对我们技术美工和开发人员来说意味着什么?对我们这些想实现这些功能的人来说意味着什么?我们在资源创建工作流程中需要改变哪些部分以使资源在开启光线追踪的引擎中正确地可视化?最重要的一点是这是否很难做到?
好消息是这一流程与大家所习惯的流程几乎别无二致,只是更注重了一些细节。以防止光线追踪时可能出现恼人的伪影,稍后我会深入讲解。现在我先谈模型优化光线追踪的性能显然也取决于场景的复杂性和模型的复杂性。

所以在建模时需要注意,首先要保持低多边形数量 管理拓扑结构 使其干净平衡,这取决于你真正需要的网格细节数量。然后使用平滑组让低多边形的边缘有正确的法线投影,最后,合理分割纹理资源,防止颜色渗出。在需要的情形下,通过多纹理叠加来降低纹理尺寸。有了以上要点,再适当使用精细模型,可以制作出高质量的资源,来渲染出完美的画质。这对于使其在光线追踪引擎中看起来很好至关重要。

第二组主题是继续深入研究功能技术实现,比如说动画。特别是摄像机动画,这些动画在光线追踪环境中缓慢移动时效果更好。这是因为光线追踪阴影和光线追踪反射的去噪器有时需要聚合。

最后我想谈谈在为(PBR)物理材质生成纹理时需要采取的方法。 工作流程与我们所习惯的一模一样,但大家需要更多地处理金属度和粗糙度的值,以防止光线追踪反射时产生不必要的噪点。在材质方面 特别是光线追踪的全局光照也是如此。某些引擎要求大家为材质设置辐照度颜色值,全局光照探针便会使用这个值,从材质本身化解出正确颜色,如果不这样做 那可能就看不到全局光照以正确方式运行。在开放3D引擎中 可以在材质设置的底部找到辐照度,在这里可以设置其颜色和强度。

要实现光线追踪,需要处理所有这些问题,从技术美工的角度,
接下来我想更详细地介绍之前的演示视频中所展示的某项功能。我们将看到在现今某个现代游戏引擎中得以实现,我要说的是实时光线追踪的全局光照。为此,我会使用最近通过开放3D 引擎所制作的演示视频,又称为O3DE。我们一起看看这段演示。
这段演示视频叫Buon(G.I.)orno,是我们公司制作的实现光线追踪的最新图形演示。大体上是再现意大利式小村庄,主要目的在于展示全局光照如何使用光线追踪实时工作。如果大家想再观看这段演示视频,请访问我们优酷或YouTube账号上的这段视频,我们还是先来看看功能描述。

基本上有两种方式帮助增强环境光亮度。首先 在场景中的材质和物体发生变化或移动时,颜色将实时扩散到周围的几何体,大家在红框中便可以看到这种情况,另外 它还可以让局部光线条件更自然这取决于有多少光线从周围的物体上反射过来。

大家可以再看一下这些功能,这些功能在游戏引擎视窗中实时发生,RTGI是游戏引擎中一种最简单的实现光线追踪的方式,也是在光线使用方面强度较低的一种。但正如大家所看到的一样,它大大地改进了移动视频游戏的总体外观。
展示了该功能的外观后,我最后会更为详细地介绍RTGI如何工作,还会向大家展示如何轻松地在现代游戏引擎中实现这一功能。我将在 O3DE中实现这个引擎也用来做演示

在了解如何设置和激活该功能之前,我们需要先了解什么是真正的光线追踪全局光照,以及它在现实生活和引擎中如何运行。我首先要说的是全局光照在游戏引擎中并非全新系统,我们经常看到全局光照作为单一的烘焙实例来实现。但是新的游戏引擎的真正创新之处在于 只有通过光线追踪才能做到这一点, 那就是实时计算全局光照系统。有了RTGI 这个系统完全动态化,对光的几何形状作出反应 ,在场景中材质实时发生变化。

大家在这段视频中可以看到全局光照在实时适应,适应引擎视窗内的材质变化。值得一提的是RTGI旨在再现现实生活中的物理现象,从一个物体上反弹的光线会很自然地动态扩散到附近其他物体上。通过简单的演示,我可以很容易地向大家展示它在现实世界中如何工作。大家能够看到,如果我打开手机的手电筒,将手电筒直接对准一个蓝色物体,从该物体扩散出来的光被蓝色色调所覆盖。另一个对准一个红色物体,扩散的光线便是红色色调。我们可以再看一下并注意以下区别,第一个物体和第二个物体所散射的光线之间存在差异。那游戏引擎又是如何在软件中使用光线追踪技术来实现同样的结果,

那便是使用扩散式探针。场景中基本上布满了探针的光栅,光线追踪在每个探针周围投下数百条光线,扩散式探针检测光线与附近几何体的相交位置,并根据这些信息产生辐照度纹理,然后把这些信息投射到几何体上 传播光线的强度和颜色,这发生在实时激活探针和取消激活的整个场景中 根据活动几何体的位置达到优化目的。

我们现在来看看这个系统如何帮助增强环境光的真实性有几个好处。 3D中的动态全局光照可以在同一场景中同时考虑到多个光源,对于提供光线追踪的大家来说 它可以实时计算 也可像普通全局光照一样烘焙。最后,它在活动光线方面非常省钱,不需要很高的预算便能正常工作。
还有一个好处是非常容易实现,那我们如何做到这一点?在开放3D中需要进入关卡添加新的组件,这就是漫反射全局光照。可以直接设置系统质量,我选择中等,然后可以创建新的实体或对象作为全局光照的容器,我将其重命名为全局光照。需要在这个实体中添加新的组件,也就是漫反射探针光栅,它将决定环境中探针的光栅。

但如果不定义边界就无法工作,所以我将新的立方体作为一个定义,设置立方体的尺寸和立方体在三维空间中的位置,而这实际上已足以开启可视化全局光照了。

假如我选用全局光照 先停用再激活。大家可以看到确实发生了其他可以实现的结果包括选用光源,并开始减少或增加强度 全局光照将实时反应。否则,你可以擦拭灯光 将其移到蓝色物体或红色墙壁旁边,便能看到更多的蓝色或红色漫射。另外,正如我之前所展示的那样,大家可以提取新的材质并将其与蓝色的墙体,进行对比就能看到墙体的新颜色漫射。基本上就是这样了 大家需要做的其他事情都在全局光照中了。

现在可以激活探针可视化了,也许我们可以开始在环境中更好地分配探针。我将采用1.5米和1.5米的间距。最后可以设置偏置,可以设置每个探针的光线数量,我选择144条光线来优化这一功能。我可以停用探针,这基本上是在O3DE等游戏引擎中,激活全局光照所需要做的一切。那大家现在已经能够理解RTGI的基本功能了, 并最终知道如何在新的游戏引擎中实现。

要增强移动视频游戏的视觉效果仅需几个简单步骤, 那下一步又是什么?我们公司的下一步又是什么?我应该说明一下 开发者和技术美工都还在充分探索这种支持光线追踪的系统,但幸运的是,我们能更容易地接受这种技术和相关的知识,我们公司正努力让光线追踪技术尽快为大家所用在移动设备中使用。

但也要感谢能有今天这样的分享机会,我们借此机会让大家对这项技术更加好奇并对其用法有更深入的了解。相信在不久的将来,游戏玩家,技术美工,开发者和工程师能使用和享受这种技术。 因为我们努力在为移动市场提供硬件光线追踪、实现GPU解决方案,并教大家如何使用,这让我们非常自豪。

我们真的很期待,因为我们看到移动游戏行业有着光明的未来,也可以说是光线追踪有着光明的未来。
非常感谢大家的关注,也希望大家喜欢我的分享。

如若转载,请注明出处:http://www.gamelook.com.cn/2022/08/494396

关注微信