反走样方法
反走样
上一篇我们详细探讨了走样现象出现的原因,简单来说就是图像边缘等包含大量高频信息的区域,由于采样率不足导致被错误重建。
由此,我们想到两种反走样的思路:
既然高频信号会导致走样,那我们可以在采样之前对信号进行低通滤波,把高频信息过滤掉——具体到图像上就是把边缘模糊化,然后再进行采样。这种方式称为前滤波(Pre-Filtering)。
另一种思路是:不在采样前处理,而是在采样之后用低通滤波器对这些离散的、有锯齿的采样点进行重构,恢复出平滑的视觉效果。这种方式称为后滤波(Post-Filtering)。
下面逐一介绍。
前滤波
前滤波是最符合信号处理理论的反走样方法——先低通滤波,再采样。但它在工程实现上非常困难。
原因在于,我们根本拿不到”连续的图像”。
渲染管线中,我们手里只有:
- 三角形顶点数据
- 纹理贴图
- Shader 代码
- 光照方程
最终的像素颜色是由这些要素综合决定的一个极其复杂的连续函数。对它做低通滤波,意味着要在一个区域内对像素颜色做卷积积分——这个积分在实时渲染中几乎无法精确计算。
代表方法:Mipmapping(纹理预滤波)
Mipmapping
这是图形学里最接近”纯正前滤波”的技术。在游戏运行之前,显卡就把高清纹理预先生成一系列由大到小、逐级模糊的图片(称为 Mipmap 链)。当 3D 物体离镜头很远、在屏幕上只占几个像素时,显卡直接采样已经变模糊的小尺寸 Mipmap,从源头上避免了高频细节导致的闪烁和锯齿。
但 Mipmapping 只能解决纹理的走样问题。对于几何体边缘、动态光影等随视角实时变化的内容,无法预计算,而实时做精确的连续积分在性能上不可行。因此,完美的前滤波在工程上几乎是一条死路,绝大多数实时反走样方案走的都是后滤波路线。
后滤波
后滤波反走样技术主要分为三个流派:
空间多采样(Spatial Multi-Sampling):在光栅化阶段,通过在单个像素内放置多个子采样点来获取更多的几何/颜色信息,再进行降采样重构。代表方法:SSAA、MSAA。
后期图像滤波(Post-Process Image Filtering):在 3D 渲染完成后,直接在 2D 颜色缓冲上做边缘检测和颜色混合。代表方法:FXAA、SMAA。
时域复用 / AI 重建(Temporal & AI):将反走样扩展到时间轴,复用历史帧数据或用神经网络进行细节重建。代表方法:TAA、DLSS / FSR / XeSS。
这里我们重点介绍 SSAA 和 MSAA,它们是理解反走样原理的基础。
SSAA(Super-Sampling Anti-Aliasing,超级采样反走样)
SSAA 的思路非常直接:既然走样是采样率不足导致的,那我们就用更高的分辨率来采样。
具体做法是:将每个像素再细分成
SSAA 的效果是最好的,但代价也最大:
MSAA(Multi-Sample Anti-Aliasing,多重采样反走样)
MSAA 是对 SSAA 的性能优化,核心思想是:在几何覆盖层面过采样,但在颜色计算层面不过采样。
具体步骤如下:
第 1 步: 对每个像素进行
第 2 步: 判断每个子采样点是否被三角形覆盖。
第 3 步: 标记出位于三角形内部的子采样点。
第 4 步: 对覆盖到的子采样点进行颜色平均,根据覆盖率绘制不同的像素颜色。
第 5 步: 得到最终的反走样结果。
SSAA 与 MSAA 的本质区别
两者的关键差异在于颜色计算的方式,我们通过一个具体例子来说明。
假设一个像素被细分为
1 | |
其中点 1、2 位于黑色区域,点 3、4 位于白色区域。
SSAA 会对这 4 个子采样点逐个进行完整的颜色计算。1 和 2 算出来是黑色,3 和 4 算出来是白色,最后降采样取平均:
这个像素最终呈现灰色,正确地反映了几何边缘的半透明过渡。
MSAA 的做法不同:它只记录”哪些子采样点被三角形覆盖了”,颜色计算只做一次(通常取像素中心点)。假设取到的代表颜色是黑色,那么:
MSAA 默认所有被覆盖的子采样点颜色相同,实际上只对几何覆盖信息做了过采样,而没有对颜色做过采样。
这也解释了 MSAA 的局限性:它在几何边缘上效果不错,但对于纹理内部的细节变化、Shader 产生的高频效果等不涉及几何边缘的走样,MSAA 是无力处理的。因此现代引擎中 MSAA 经常需要配合其他技术一起使用。
对比总结
反走样的本质是用”模糊”换”平滑”
- 前滤波在采样前模糊,理论最优但工程上几乎不可行,Mipmapping 是其唯一成功的规模化应用。
- 后滤波在采样后重构,是实时渲染的主流方案:
- SSAA:效果最好、性能最差,是理解反走样的理论基准。
- MSAA:在几何层面过采样,是性价比最高的硬件反走样方案。
- FXAA / SMAA:在 2D 图像层面做边缘平滑,速度快但可能损失细节。
- TAA / DLSS / FSR:利用时域信息和 AI 进一步突破画质瓶颈,是当前的主流方向。
这次的插图来自画师 Elop
图片地址:https://www.pixiv.net/artworks/1330151130