FSAA demo 1.1

It is a small program which demonstrates the capabilities of the different methods of supersampling FSAA. The two methods are the ordered grid subsample antialiasing (used by nvidia) and the rotated grid subsample antialiasing (used by 3dfx). The difference between the two is the slightly different subsample positions while both of them use the same amount of subsamples.
You can see FSAA in motion which shows that FSAA is not only the elimination of jaggies, it also reduces pixel popping A LOT. But keep in mind that the videocard output without FSAA is better because mipmapping greatly reduces pixel popping.

To use it simpy run FSAA.exe. Make sure that image.bmp is in the same directory. You can use any image you like but MAKE SURE that it is 24 bit bmp because I don't do any error checking right now. The size of the image can be arbitrary but I highly recommend 600x600 or more (more is better) because calculating FSAA needs high detail.

Usage is very simple. The function of the movement angle and shrink trackbars are obvious. Use the zoom and move checkboxes to control motion.
The RG rotation angle trackbar controls the rotation of the subsampling grid when using rotated FSAA.
At the bottom you can select the FSAA method.


no FSAA: simple one sample rendering

Blur: it is not an FSAA method. It uses the neighbouring pixel data (instead of subsample data) and blends them together. I included it only to show the difference between blurring and antialiasing.

16x and 9x ordered FSAA: It is not used by currend videocards but by professional software renderers. 16x FSAA can be used as a benchmark quality because increasing the number of subsamples barely increase quality furter.

4x Ordered: Used by nvidia Geforce cards. It is equivalent to 0 degree rotated FSAA.

4x Rotated: Used by 3dfx Voodoo5 cards. RG angles near 20 degree give optimal results for near horizontal and vertical edge smoothing while loosing some quality at less visible angles and loosing some accuracy compared to ordered.

2x Rotated: Used by 3dfx Voodoo5 cards. Same as 4x rotated but only the top left and the bottom right subsamples are used to speed it up. Because of this optimal results can be achieved by 0 degree rotation.

2.25 SS: 2.25x supersampling. This is a method which will be implemented by Geforce cards with future drivers. It renders a 1.5x1.5 higher res image and then performs a weighted blend on each 3x3 block to make it 2x2. It has 1/2.25 fillrate hit so it is almost 2x as fast as 4 sample FSAA methods.


I recommend 640x480 or 800x600 resolution for viewing but you can use the double switch for high (>1024x768) resolutions. Use at least 4:1 shrinkage for best results.

From the tests you can see that 4 sample ordered and rotated subsampling produce comparable image quality although rotated produces somewhat better results for near vertical or horizontal lines. Although it has a price (near 45 degree lines are somewhat better with ordered) rotated is better for the human eye because at near horizontal and vertical lines aliasing is uglier. But the difference is not too much.
2 sample rotated gives fairly good results considering that it uses only two subsamples but it cannot be compared to the 4 sample methods.
2.25 SS gives somewhat better results. While 2 sample RGSS antialiases certain edges (determined by RGSS grid rotation angle) quite good, it leaves others nearly unmodified. 2.25x does not have this flaw (although you may find some edges where 2x RGSS is better if you search for it carefully).


I hope it was useful.


Sos rpd
sarpad@webmail.hu