跳转至

反走样技术(Antialiasing)

别名: 抗锯齿.

走样(aliasing)是光栅显示的一种固有性质. 产生的原因是像素本质上的离散性, 因此走样是无法避免的. 走样产生的现象主要有:

  • 图形产生锯齿状边缘, 呈"阶梯"状.
  • 相对微小的物体容易在静态图形中被丢弃.
  • 在动画序列中图像产生闪烁, 时隐时现.

通过"模糊"边界之间的颜色变换, 可以使得锯齿状的边界不那么明显, 看上去更加平滑. 具体的实现有以下两种方法:

  • 非加权区域采样方法.
    根据覆盖度(coverage)计算像素的颜色, 覆盖率指某个像素区域被物体覆盖的比例. 但由于每次只考虑一个像素区域所以效果有限.
  • 加权区域采样方法.
    影响到多个像素区域, 因此效果更佳.

超采样抗锯齿(Super-sampled antialiasing, SSAA)

别名: 全屏抗锯齿(Full-screen antialiasing, FSAA)

把场景渲染至比实际屏幕大的缓冲区中, 再将图像向下采样(downsample)至目标分辨率. 在 4x 超采样中, 渲染图像长宽各为 2 倍, 帧缓冲区占 4 倍显存, 需要 4 倍 GPU 性能. 因为 FSAA 过于昂贵, 很少用于实际场合.

多采样抗锯齿(Multi-sampled antialiasing, MSAA)

能提供近似 FSAA 的效果, 但消耗相对少得多的 GPU 性能(显存占用一样多).
但是当在三角形数量大于像素数量的场景中该方法可能失效.

  • 快速近似抗锯齿(Fast Approximate Anti-aliasing, FXAA)
  • 时间混叠抗锯齿(Temporal Anti-Aliasing, TXAA)
  • 覆盖采样抗锯齿(coverage sample antialiasing, CSAA)
  • 形态学抗锯齿(Morphological antialiasing, MLAA)
  • 深度学习抗锯齿(Deep Learning Anti-Aliasing, DLAA)

评论