After having bought a copy of Microsoft Flight Simulator 2000, it didn't take long to became intrigued with full scene anti-aliasing (FSAA). I found myself in uncharted territory as I rarely played flight or race simulation games. The benefits of FSAA weren't that important to me as I've alway been a fan of first person shooters.
A few thoughts entered my mind as I was waiting on the runway during my first flight lesson. I immediately noticed aliased lines, also know as jaggies, on the plane, runway, and buildings. Add to that the effects of texture swimming, with lines on the runway and edges of buildings sliding back and forth. The effects of texture swimming are bothersome and can be caused by inadequate texture interpolation. The good news is that it can be corrected by sufficiently subdividing polygons or using perspective correction.
Given the following scenario, this article intends to investigate the performance of FSAA on the GeForce2 MX, GTS, and Ultra using a variety of Direct3D and OpenGL based games. There are plenty of images to compare and benchmarks to study. The target resolution for measuring FSAA performance is 640x480 while 1280x960 with FSAA disabled is provided for comparative purposes. In order to provide a realistic look at performance, sound was enabled while performing benchmarks.
The following images illustrate the effects of aliasing and were taken at a resolution of 640x480 in 16-bit color. Clicking on an image will open a new window showing each image magnified by 100%. The enlarged images are somewhat blurred due to the magnification process.
|FSAA Disabled - Scene 1
||FSAA Disabled - Scene 2
The frame rate in these scenes was hovering around 25-30 frames per second on a GeForce2 MX. We'll take a look at performance later after covering the benefits FSAA can offer a game like Flight Simulator 2000.
GeForce based graphics cards support FSAA in Direct3D and OpenGL applications which was made possible with the Detonator 3 drivers. The Detonator 3 drivers use Ordered Grid Super Sampling (OGSS) to implement FSAA. With supersampling, each pixel is divided into subpixels. By means of averaging, a color is calculated for each subpixel and a final color of the pixel determined. The more subpixels there are in each pixel, the greater the level of antialiasing.
Supersampling also creates a virtual image at a higher resolution than the rendered resolution and averages it down to the display resolution. For example, when a 2x2 subpixel mask is used at a resolution of 640x480, the image is rendererd internally at 1280x960 which requires four times more memory. The approximate amount of memory required for FSAA can be determined based on the following calculation:
Buffer Memory =
ScrnWidth * ScrnHeight * BytesPerPixel * NumBuffers * NumSubPixelSamples
For example, suppose we are running 2x2 FSAA at a resolution of 640x480 in 16-bit color:
- ScrnWidth = 640
- ScrnHeight = 480
- BytesPerPixel = 2 for 16-bit color, 4 for 32-bit color
- NumBuffers = 3 (front+back+depth/stencil), but triple buffering uses 4
- NumSubPixelSamples = the product of FSAA X and Y samples (2.25 for 1.5x1.5, 4 for 2x2)
The following table shows the memory required at a resolution of 640x480 in 16-bit color with no FSAA, 2x2 FSAA, and 3x3 FSAA. For comparison purposes, the amount of memory required with no FSAA at a resolution of 1280x960 in 16-bit color is also provided.
||1 (No FSAA)
||1 (No FSAA)
The amount of memory required for FSAA, especially at higher resolutions and/or 32-bit color, is enormous. In 32-bit color, where the bytes per pixel increase to 4, a setting of 2x2 at 640x480 approaches 15MB of memory and 800x600 requires 23MB.
In the event where the the amount of memory required for FSAA is exceeded, the Detonator drivers automatically scale back to the next best level. No doubt that a 64MB graphics card would be better than a 32MB card if you plan to make heavy use of FSAA.
Before checking out performance, let's go over the hardware and various settings used.
- Pentium 3-700E @840MHz
- 128MB Mushkin PC150 RAM
- Asus CUSL2 Mainboard (120/120/40)
- NVIDIA GeForce2 Ultra
- NVIDIA GeForce2 GTS
- NVIDIA GeForce2 MX
- Default Core and Memory Speeds
- Detonator 3 Driver Version 6.18
- Vsync Disabled
- Sound Blaster Live Value
- Sound Enabled
- 85MHz Monitor Refresh Rate
- Windows 98
I recently purchased this barebones system from GamePC. Unfortunately, I've been unable to get the processor to run stable past 840MHz, but I'm still trying. Maybe I need a consultation with Captain Kyle...
Next Page: Flight Simulator 2000