07 A Glimpse of Industrial Solutions

发布时间 2023-05-02 23:36:54作者: ETHERovo

1. Anti-Aliasing

1.1 Temporel Anti-Aliasing (TAA)

  • 对于静止图像,每一帧的采样取像素内不同的区域,循环变化,下一帧复用上一帧的信息,考虑到递归,就会使得等效SSP变大。
  • 对于运动物体,使用motion vector来查找。
  • 如果出现遮挡等问题使得信息不可用,就采取相应的clamp等方法。

1.2 MSAA 与SSAA

  • SSAA
    • 使用更大的分辨率去做渲染,然后压小;可见开销很大
  • MSAA
    • 对采样的点,如果一个三角形只采到一个点就用该点shading,如果对一个三角形才到多个点则用这些点中间的点做shading;因此需要维护一张表,记录采样点的颜色和深度
    • samples复用,将采样点放在邻近像素中间,就可以复用

1.3 Image based anti-alisaing solution

  • FXAA->MLAA->SMAA(Enhanced subpixel morphological AA)
  • 矢量化

1.4 G-Buffer不可以做反走样,否则就会失去意义

2. Temporal Super Resolution

2.1 DLSS

  • 提升了分辨率,那么相应的细化的像素就难以找到上一帧的对应信息,不能直接clamp,容易糊掉。
  • DLSS 2.0就提供了利用temporal的方法。
  • 其他:

3. Shading

3.1 Deferred Shading 延迟渲染

  • 光栅化时,如果从远到近做shading时,就需要对每个fragment做shading。
  • 第一次光栅化不做shading,只更新depth buffer
  • 第二次光栅化只对等于depth的部分做shading。
  • 因为深度buffer不可以做AA,所以不能做aa,但是可以使用TAA或者图像方法。

3.2 Tiled Shading

  • 把屏幕分割成小块,对每一块做shading,如此一来可以减少需要考虑光源的数量
  • 因为光源在考虑立体角时会有平方反比的关系,所以可以假设每个光源都有自己的一个作用范围,如此一来不同的小块经过的光源范围数量是变少的,只需要渲染能影响到他的光源就可以了。