跳转至

反走样技术 (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).

评论