FSAA Sample Pattern Analysis

To look at the FSAA on display here a little closer we'll use Henrik ‘Basic’ Gustavsson’s FSAA test app, as used in our 3Dlabs Wildcat III & SuperScene Anti-Aliasing article



2X FSAA                               4X FSAA


6X FSAA

Here it's a little easier to see the edges. 2X FSAA clearly shows a single intermediate gradient on both the near horizontal and near vertical edge, both fairly evenly spaced -- this is indicative of a rotated grid FSAA system, and given the pattern it would appear to be a 45 degree rotation. The 4X shot shows 3 intermediate gradients, again relatively regularly spaced, which could also indicate a rotated grid FSAA system. Likewise the 6X FSAA shot also shows 5 gradients on each of the edges.

"Basic's" test application also has a geometry mode which can be used to give an indication of sampling patterns. The following image shows the geometry mode of the application without FSAA applied and with 2X FSAA:



No FSAA

2X FSAA

Going from no FSAA to 2X FSAA in geometry mode results in the frequency of the white areas doubling (consistent with the level of AA) but the pattern of the sample points changing. This can give us an indication of where sampling patterns are being used in the FSAA modes present. The following images show the non FSAA sample pattern (in grey) superimposed onto the images taken from each of the AA modes -- the green spots show that modes samples, and the red ones are what I've guessed to be a single set of samples.


2X FSAA

4X FSAA

6X FSAA

As we can see, the sampling positions for 2X FSAA are very consistent with 45 degree rotation. The 4X sample positions look somewhat akin to the old Voodoo5's sample positions, and the 6X is a little odd to say the least.

While this clearly demonstrates that Radeon 9700 PRO is not using straight ordered grid sampling patterns, it doesn't necessarily show the whole picture. Radeon 9700 PRO's FSAA has a programmable lookup table of sample positions. A set number of predefined sample patterns can be programmed in and the best sample layout for the pixel being rendered can be chosen from that list based on various criteria. In the case of this application, if it was rendered slightly different, then the sample patterns could well have been in a different location.

While this method is not truly a stochastic method, it does allow for a greater degree of flexibility which should translate into image quality.