Sample Aggregation

The final ingredient in sampling-based AA methods is the method used in sample aggregation, that is, how the individual samples generated during rendering are aggregated into a final colour for each pixel. Various aggregation filters used for this purpose are illustrated in Figure 7. In it, 3×3 pixels are shown – cyan dots represent sample positions, and the yellow shading the sample aggregation filter.

The default and most common aggregation method simply accumulates each sample within the square region representing a pixel with equal weights. This is called a "box" filter, and is used in all normal MSAA modes.

An early approach which tries to achieve a better anti-aliasing effect with a small number of samples is "quincunx" anti aliasing. Here, only two samples are calculated per pixel: one in the centre and one shifted half a pixel up and to the left. However, five samples are accumulated per pixel instead of just these two, following the pattern shown in Figure 7. This results in a markedly better reduction in aliasing, but also blurs the entire image, as colour values from the surrounding pixels are aggregated into each pixel.

A more flexible approach was introduced by AMD in 2007 with the HD 2900 series of GPUs. They offer programmable sample aggregation, which was used to implement "narrow tent" and "wide tent" aggregation modes. As illustrated above, these do not weigh each sample equally, but rather use a weighting function depending on the distance from the pixel centre. The narrow and wide variants differ in the size of the filter kernel used. These aggregation methods can be combined with a variety of sample counts, and some results achieved with them are included in the overall comparison. As with quincunx AA, these methods represent a trade-off between image sharpness and aliasing reduction.