抗锯齿
一种渲染技术,通过在边界处混合中间色来平滑对角线和曲线上的锯齿状伪影(阶梯效应)。
抗锯齿 (Anti-aliasing) 是消除数字图像中锯齿状边缘(阶梯伪影)的技术总称。当连续的几何形状被离散的像素网格表示时,斜线和曲线不可避免地出现阶梯状锯齿。抗锯齿通过在边缘像素中混合前景色和背景色来模拟平滑过渡。
主要的抗锯齿方法:
- MSAA(多重采样):对每个像素的多个子采样点进行几何测试,根据覆盖率混合颜色。性能开销适中,是实时渲染的经典方案
- SSAA(超采样):以更高分辨率渲染后缩小,质量最高但性能开销最大
- FXAA(快速近似):后处理阶段基于亮度对比检测边缘并模糊,性能开销极低但会轻微模糊纹理
- TAA(时间抗锯齿):利用多帧信息累积采样,在运动场景中效果优异,是现代游戏的主流选择
在 Web 环境中,浏览器对文字和 SVG 自动应用子像素抗锯齿。CSS 的 image-rendering 属性可控制图像缩放时的插值方式,font-smooth 属性影响字体渲染的平滑程度。Canvas 2D 绑定默认启用抗锯齿,可通过 imageSmoothingEnabled 关闭。
各手法的代价与实现细节:4x SSAA 对每个像素计算 16 个采样,画质最好但 GPU 负担也放大 16 倍;4x MSAA 只对多边形边缘做多重采样,内部着色仅 1 次,成本约为 SSAA 的 1/4,因此成为实时 3D 游戏的标准;子像素渲染利用 LCD 面板的 RGB 子像素排列,把文字的水平分辨率提高约 3 倍,Windows 的 ClearType 即为代表。Web 端可用 CSS 的 -webkit-font-smoothing: antialiased 或 Canvas API 的 imageSmoothingEnabled 控制行为;在 Retina 等高像素密度屏幕上必要性下降,但普通分辨率显示器仍不可缺。