对《Portal RTX》的优化的简短评价
去年,NVIDIA 基于 Ada Lovelace 微架构的 RTX 40 系列显卡发布,它的光线追踪和 DLSS 性能大幅提高。附带的 Tech Demo 有 Racer RTX(未发布)以及被更多人关注的 Portal RTX.
因为配置需求问题(注意:我说的不是“优化”而是“配置需求”)所以被口诛笔伐,包括我:

我们来看这样一组资料,这是 NVIDIA 官方给出的 Portal RTX 显卡要求:

要想满足 1080p 60帧,你至少需要一块 RTX 3080(并且是开启了 DLSS),这是非常令人愤怒的配置要求,NVIDIA 似乎是在对待仇人一样推出了 Portal RTX.
不过,一味抨击只会让自己不快乐。我们不如坐下来思考,这是怎么会是呢?
接下来就是文章的重点了:
Portal RTX 并不优化差,相反地,优化比较好。
绝大多数玩家没有学习过实时渲染,不知道光线追踪对性能开销的影响具体是什么样的。尤其是像 Portal RTX 这类大规模使用光线追踪算法的游戏,很容易直接被打入渣优化范围。
光线追踪,现在更为广泛的做法叫“路径跟踪”,本质上是以一种无偏估计方法求解渲染方程。这里只放出模型表达式,推导什么的说了您也懒得看。


您会发现每个着色点我都要考虑一大坨定积分以及双向反射分布,这样的计算量是极其庞大的。相比 Portal 小打小闹的 Blinn-Phong 模型,就算是您连求和符号都看不懂,都能看出这计算量的差异。

比这个更要命的是可见度计算。传统光栅化渲染管线使用 Z-Buffer 算法计算可见度,这是一种很简单的算法,而光线追踪需要通过生成大量光线与场景包围盒以及三角形进行求交计算。
因为这个流程比较固定,AMD 和 NVIDIA 各自在他们的光追单元上加入了求交加速器。
这里,学术界已经提出了很多加速算法,例如 BVH(层次包围体积)结构,一般我们选择采用轴对齐包围盒(AABB)来包围场景。这样一通操作下来可以让时间复杂度从 O(n) 降低至 O(logn). 但是就算是这样,对于目前的 GPU 算力来说,还是太难了。
而 Portal RTX 的问题在于,它的光线追踪有点太纯了。
还有一种说法是使用了 4 次反弹造成的,实际上这是错的。因为你可以自己调整,然而就算是调整到 2 次反弹,性能还是没法看。
以往的光线追踪游戏,一般使用使用 DDGI 等方法记录辐照度信息,直接光照甚至直接使用传统渲染模型。或者只发射用于阴影计算的 shadow rays,预计算全局光信息利用球谐函数来解码辐照度。
而 Portal RTX 从可见度计算到辐照度信息计算都是通过光线追踪完成的。但是这样的例子也不是很罕见,比如 Quake 2 RTX 与 Minecraft RTX 等。
问题是,为了保证降噪 input data 的数据质量,NVIDIA 在 Portal RTX 上应用了一种基于空间重要性重采样的全局光照技术。

这是一篇发表于 2021 年 Eurographics 的论文里截的概述:

就算是看不懂,您也能看出一些端倪:
这是一篇 2021 年的论文,这意味着这项技术从学术界落地到工业界仅仅只用了两年不到。
所以某种程度上您可以直接得出结论了,Portal RTX 根本不是游戏,这是一个面向大众的研究成果展示。
不过从另一方面思考,在这么短的时间内落地,对开发者的要求是很高的。加上要把 Portal RTX 这样大规模使用光线追踪做出来,已经很了不起了。
所以,在此我向 NVIDIA Lightspeed Studio 的所有工程师们致以最崇高的敬意。
最后,
So, NVIDIA fxxk you.