chopper:专栏目录zhuanlan.zhihu.com
图1. 1个像素点有4个子采样点[1]
多重采样抗锯齿的英文原名是Multisampling Antialising,缩写为MSAA。本篇文章主要介绍MSAA的原理和一些局限。
MSAA是一个与SSAA很相似的技术,在光栅化阶段,在一个像素区域内对使用多个子采样点,但是每个像素内的这些子采样点共享一个着色计算,即是每个像素仍然只执行一次片断着色(Fragment shading)的计算,然后将计算的颜色结果复制到每个子采样点上。以图1所示为例,在任意1个像素有4个子采样点,每个采样点有自己的颜色和深度,每个子采样点共享一个着色计算,但是每个子采样点有独立的深度值。
这样一个像素内深度测试失败的子采样点将不会包含颜色信息,在1个像素中我们设立了0-3四个采样点,在计算颜色为的时候仍然使用中心点计算,得出的输出直接复制给四个采样点,也就是四个采样点颜色信息是一样的。但是在深度和覆盖测试中只有1号采样点是通过的,因此我们将像素的颜色值/4,就是像素最终输出的结果。
MSAA是把像素扩大N倍,得到N个子采样点,再将扩大成N倍的渲染目标,再经过一个过