Games202 A Glimpse of Industrial Solutions
Anti-aliasing
TAA
Temporal Anti-Aliasing
TAA 把一个像素内分成 4 个感知点,如上图所示,每个感知点记录每一帧的信息,如左上角是当前第 i 帧,右上角是 i - 1 帧,右下角是 i - 2 帧,左下角是 i - 3 帧,每一帧的其中一个感知点复用上一帧感知点的信息,是一个递归的过程,这样就把每四帧的信息做了一个平均形成了复用。
MSAA & SSAA
SSAA是超采样,也就是说它是真的用更高的分辨率去渲染整个场景
而MSAA不同,对于一个像素内的四个采样点,如果采样点在同一个三角形上,那么只会做一次着色
Image based anti-aliasing
DLSS
Temporal Super Resolution
将小分辨率图片拉大
DLSS 1.0 是通过深度学习去猜
DLSS 2.0 则是利用 temporal 的信息来提高分辨率
Deferred Shading
传统的渲染管线有一个问题,那就是我们有大量的光栅化着色了的片元在最后可能通不过深度测试(例如从最远的物体开始光栅化),所以计算它们是非常浪费的
第一趟先更新深度缓存,第二趟再做光栅化,只有在最前面的物体才能通过深度测试被光栅化。
复杂度变成从 frag * light 变成了vis.frag * light
Tiled Shading
分块渲染主要是为了解决 Deferred Shading 中的多光源问题
把屏幕分成许多小块,假如每个小块里的像素是32x32,那么每个小块其实对应三维空间的一条立方体如上图所示
光源强度衰减到一定值的时候我们就没有必要考虑它的贡献了,如上图所示的每个球就是一个光源我们对它划定的最大影响范围,这就说明并不是每个光源对每个分块都会有影响,这样就可以对每个分块单独计算着色了
复杂度再次降低从 vis.frag * light 变成了 vis.frag * avg light per tile
Clustered Shading
Clustered Shading 是在 Tiled Shading 基础上进一步的优化,它不仅对像素分块,他还对深度进行了切片,使得 3D 空间变成了许多格子,这样做也是因为在 Tiled Shading 划分的长条区域内,仍然有区域外的光源会被认为对该长条区域有影响,而此时如果在深度上再做一个切片就可以避免这种情况,这样就更加减少了无意义的 shading。复杂度也再次降低。
Level of Detail Solutions
在渲染的时候不同情况选择正确的 level (例如 MipMap )有助于我们节省计算量,在工业界这种方法我们常称作 Cascaded 方法
Cascaded 方法的一个例子就是 Shadow Map,也就是 CSM
物体离我们越远在屏幕上就越小,那我们就越不需要去精细的去表示它们,阴影也是一样,而 CSM 就是这种思路。离我们越远的物体,我们 Shadow Map 上记录的就越粗糙。但是我们没法去生成一个便分辨率的 Shadow Map,所以一般人们会生成两种 Shadow Map,如上图红色就是精细的 Shadow Map,而蓝色框就是粗糙的 Shadow Map,然后根据深度去选择采用哪个 Shadow Map
为了避免 Shadow Map 的突变,使得有一个平滑的过度,它们交叉的区域相当于一个过渡区的 Blending 操作
Cascaded 的另一个例子就是网格层次细节划分。远的物体用更少的三角形表示。
切换图片如果要平滑过渡,可以用 TAA 处理
以上就是 UE5 中 Nanite 的基本思路
Global Illumination Solutions
除了 RTRT 没有任何一种方案能完全解决全局光照问题。但是 RTRT 又受限与速度,没法在所有流程全部都使用 RTRT。而工业界通常是把所有办法都杂糅在一起去考虑解决问题
比如,一个可能的解决方案,我们先用SSR做一次GI,但是当然会有很多 failure,比如说我们前面提到的反射缺失等等。然后我们再考虑用其它方法去弥补它出现的问题,或者是用硬件或者是软件去做 tracing
软件做 tracing,近处我们就需要高质量的 SDF,通过 SDF 去 trace 会比 BVH 快很多,而远处就只需要稍微低质量的 SDF 去 trace 了。
而对于手电筒这种强的方向光源和点光源,可以用 RSM,其次还有一些方法如 DDGI,是使用场景中分布探针来照亮实现 GI 的,也是一个 3D 空间中实现的全局光照方案。
而硬件上,我们算间接光照并不需要太复杂的几何,因为没必要算那么准确,用简化的模型来代替原来复杂的模型,这样就可以一定程度上加速我们的追踪。
上面就是 UE5 的 Lumen 的基本思路。