

假设最终输出的分辨率是800x600,4xSSAA就会先渲染到一个分辨率为1600x1200的buffer上,然后再直接把这个放大死白的buffer下采样致800x600。这种方法为数学上最完美的抗锯齿。但是劣势也很明显,光栅化和片元着色阶段的符负荷都是原先的四倍,render target的大小也涨了4倍。

原本只采样一个点,就没有了渐变效果,现在采样四个点并用百分比计算颜色,达到渐变效果。
所以MSAA着重在光栅化阶段和片段着色器阶段进行处理:




前向渲染中:SSAA,MSAA,CSAA,RGSS
延迟渲染:FXAA,MLAA,SMAA
时域上的抗锯齿:TemporalAA,TXAA
基于深度学习:DLAA
荣耀30Pro+支持MSAA
在不开启“4倍抗锯齿”设置时平均帧率为59.7帧
开启后帧率为59.6帧
可以发现对帧率的影响不大,但是对GPU的温度会有明显影响。

| 抗锯齿种类 | 是否支持延迟渲染 | 性能耗费 | 抗锯齿表现 | 测试的不良表现 | 性价比 |
|---|---|---|---|---|---|
| MSAA(8x) | 否 | 中 | 良 | 无 | 中 |
| SSAA | 是 | 高 | 优 | 无 | 低 |
| FXAA | 是 | 低 | 良 | 画面会糊 | 高 |
| SMAA(Enhanced Subpixel Morphological Antialiasing) | 是 | 低 | 良 | 无 | 高 |
| TAA | 是 | 低 | 良 | 会有闪烁表现 | 高 |