FSAA Shootout review by planet hardware

Started by ElvIsAlive007, 01 April 2003, 16:46:12

Previous topic - Next topic

ElvIsAlive007

http://web.archive.org/web/20000815210753/http://www.planethardware.com/features/fsaa_shootout/

The days of being happy with basic 3D accelerated goodness are over, consumers are demanding more and more features from manufacturers. Some of the features announced to fill this demand are 3D textures (from ATi), DualHead display (from Matrox), Hardware T&L (from NVIDIA), and FSAA (which was first introduced by 3dfx). Full-Scene Anti-Aliasing(FSAA) is a technique used to remove visual artifacts from OpenGL & Direct3D games.
Much of the current hype surrounding FSAA can be credited to 3dfx, who first started trumpeting the benefits of FSAA during the initial demonstration of their VSA-100 chips. However, with all of the hype surrounding FSAA, it wasn't too surprising to see other manufacturers incorporate the feature into their products. NVIDIA, for example, has been offering FSAA officially, available as a checkbox item since their official 5.22 Detonator drivers. ATi has also made FSAA available to end users, as a checkbox under their driver settings.

The main difference between the companies is the FSAA technique used, which differs from manufacturer to manufacturer. 3dfx uses RGSS/JGSS while ATi and NVIDIA use OGSS techniques. What are the differences between these techniques from a technological standpoint? What are the differences from an image quality standpoint? Well, we'll answer these and a few more during our FSAA Shootout.

Now, we'll be looking at loads of screenshots performed on four of the following cards: Hercules 3D Prophet II GTS 64MB, Hercules 3D Prophet II MX 32MB, ATi Radeon 64MB, and 3dfx Voodoo5 5500. Comparisons between screenshots will always yield opinioned conclusions - what conclusions we come to might be different than the conclusions you come to. That's why we've included all of the original image files, along with thumbnailed versions for users not on broadband connections. You can download all the original source files and come to your own conclusions if you like!

And now with that disclaimer out of the way, lets jump into explaining FSAA technologies.

http://web.archive.org/web/20000815210753/http://www.planethardware.com/features/fsaa_shootout/
 

ElvIsAlive007

OGSS FSAA Explained

Ordered Grid Super-Sampling is the FSAA technique implemented by both NVIDIA and ATi, and can be implemented on almost any 3d accelerator card. As the name implies, the image is processed in an ordered method, using a regularly patterned grid of sub-samples for each pixel. So, each pixel will get sub-samples arranged around it in rows and columns, to create a more detailed collection of adjacent texture samples around the final processed pixel.
To implement this technique you have to do some crafty tricks, involving super-sampling and an off-screen buffer. The source image we are dealing with is scaled in resolution, from its original size, by a factor of 2 or 4 (up-sampling) in both the horizontal and vertical directions. Super-Sampling allows you to create enough sub-samples around your original pixel, which then allows for more gradual transitions between pixels, which will help us reach our anti-aliasing goal of fewer on-screen jaggies and other visual artifacts. Once we have the up-sampled image, which is twice or four times as big as the original in terms of resolution size, we render it into the off-screen buffer.

Once in the off-screen buffer, we can take our up-sampled image and down-sample it back down to the original resolution. To down-sample, we take the color values of surrounding pixels (generally in a square), add them all together, and divide by the number of original pixels. Now, these pixels that we are condensing, from the up-sampled image, are the sub-samples of the final anti-aliased pixel. Now, once this is done for each for each grouping of pixels, we have our final image at the original target resolution. Thus, the final image can be moved from the off-screen buffer and into the frame buffer, from which it will be outputted to the screen.

Now, some folks tend to think of this approach as a software hack, but both ATi and NVIDIA use their on-board T&L to assist in the up sampling of the original image. This is because the original image is composed primarily of vertices (parts of a triangle), which are mapped to a particular space in screen-space. Because the images scale is increased, the vertices' coordinates change as well, which is where on-board T&L becomes handy.

 

ElvIsAlive007

RGSS/JGSS FSAA Explained

The technique that 3dfx has opted to perform in their VSA-100 based Voodoo5 5500 and 6000 products is called Rotated Grid Super Sampling, but is sometimes referred to as Jittered Grid Super Sampling. This technique is somewhat similar to OGSS, except that the image is processed at a slight 'tilt', if you will. This 'tilt' is done on a randomized basis, so that the entire image isn't skewed in the same direction.
Now, when you get down to it, JGSS is a lot like OGSS - except that once you have the various samples they are shifted in position several times, hence the name 'jitter'. 3dfx's T-Buffer technology allows them to perform this 'jittering' in hardware, which saves them from sending this data back and forth to the CPU for processing, which is how a standard accumulation buffer works.

The benefit of JGSS over OGSS is that not only does it help to eliminate jaggies from rendered frames, but it also reduces other aliasing effects such as shimmering and popping pixels (i.e. pixels that come in and out of a scene based on viewer distance). So, from a purely technological standpoint, 3dfx's implementation is more complex and slightly more streamlined than the standard OGSS technique, which is why they've been evangelizing about it.

FSAA Testing

Ok, so now that we've dispensed with explaining the technological parts behind the various FSAA implementations, it's time to talk about testing methodology. What we are comparing in this shootout is how well the various FSAA techniques work to provide better looking games - period. To that end, we'll be comparing screenshots from 4 different games, 2 on OpenGL and 2 on Direct3D.
For OpenGL we decided to test using Quake3: Arena, as well as with the Half-Life mod Counter-Strike. As many CS fans know, the aging Half-Life engine can use as much help as it can get to make it look better, and FSAA helps out a lot. Because of Half-Life's age, the engine can only render straight surfaces, not curves like Q3A can handle. FSAA helps out here by removing all those annoying jaggies from the screen. The factor for why CS players will love FSAA is that it works optimally for 640x480 and 800x600 resolutions. This is the sweet spot for most CS players, simply because these resolutions make headshots that much easier, as well as keeping the HUD easily visible.

For Direct3D we opted to use Need For Speed: Porsche Unleased and Motocross Madness 2 - both fairly popular games that benefit highly from FSAA. This is primarily due to the huge outdoor areas in Motocross Madness 2, and the straight edges found in many NFS: PU tracks and on the cars.

In our OpenGL testing, we enabled anistropic filtering and controlled FSAA via checkboxes for the NVIDIA and ATi cards. For the 3dfx Voodoo5 5500 we selected 2x FSAA, and opted to leave 4x FSAA out of our testing. It is our feeling that in terms of image quality, 3dfx's 4x FSAA just can't be touched. Unfortunately, the 5500 doesn't have enough fill rate to throw at 4x FSAA so the framerate is usually fairly horrendous - even at 640x480.

As an interesting aside, we called ATi to figure out exactly what types of FSAA they have in their current driver release for the Radeon. They are currently using a 4x FSAA method, implementing an OGSS technique EXTREMELY similar to NVIDIA's technique. There is interest in offering a 2x FSAA option in one of the later driver releases, and ATi is currently looking into this due to user demands. When, and if, this driver option becomes available you can expect Planethardware to do a 2x vs. 4x FSAA comparison for the Radeon.

In our Direct3D testing we simply checked FSAA on under the advanced properties for our Radeon card. For our NVIDIA cards, we pushed the Anti-Aliasing slider to the third setting from the left, and checked to force FSAA in all applications. Note, the AA option is only shown under the advanced D3D options if you have enabled the CoolBits registry key. To disable D3D we pushed the slider bar all the way to the left. As another note, by setting the slider on position 3 we have enabled a 4-sample FSAA method with a high-detail mip level selection. For more on what each of the slider positions do, visit Beyond3d.com.