Spatial Anti-Aliasing

We've all probably seen aliasing rear it's ugly head, even if you don't use any 3D graphics and that's because it's a problem even in the world of 2D computer graphics. This can be seen in the "jaggies" found in computer graphics around diagonal lines and round edges as shown below. This is usually what comes to mind when thinking about aliasing issues, and it's just as much of a problem in the 3D world, if not more. To get technical, this is known as spatial aliasing, where, as the name implies, the problem occurs in space.

Image courtesy 3dfx Interactive

Anti-aliasing is a technique that removes these "jaggies" by filling in with intermediate shades to smooth things out. This is relatively easy to implement in 2D and is even available from Windows 98 display properties for screen fonts. But in 3D, things become exponentially more complicated and no consumer solution can implement true anti-aliasing in hardware. Further, in 3D there's the additional problem of pixel popping certain distant objects end up being less than a pixel wide on screen and are sometimes shown, but other times not. This is known as pixel "popping," and is a potentially larger problem than just "jaggies."

Images Copyright 1998, Mango Grits, Inc.

Many cards claim support for anti-aliasing by implementing "edge" anti-aliasing or anti-aliasing through "oversampling." Edge anti-aliasing is accomplished by tagging which polygons are an edge and then going back and letting the CPU perform anti-aliasing on these edges after the scene is rendered. In order for a game to support this, it has to be designed with this in mind as the edges have to be tagged. The extra steps cause serious latency issues and sucks up all the CPU power. Oversampling is simply rendering a scene at a higher resolution than the final output and then scaling it down. This technique is implemented by the PowerVR architechure. Of course, it takes a lot more power to render at 1600x1200 and then scale down to 800x600. In other words, they're useless for games, but are implemented for OEM "checklists" and improving 3D Winbench quality scores.

The T-Buffer provides true full scene anti-aliasing that solves both pixel popping and jaggies. Perhaps the best thing about the T-Buffer is that it is simply turned on in the driver and is then automatically applied to any game ever written for any API. As a complete hardware solution, there is no software or driver overhead.

At 3dfx's headquarters, we got the opportunity to check this out on Need For Speed 3 on special T-Buffer emulation hardware/software. No special modifications to the game were made as it was installed straight from the CD to a system with a Voodoo3 and a second system with the T-Buffer emulation in place. Two LCD monitors, one for each system, were placed side by side and we were allowed to watch 3dfx employees drive around in shiny new Corvettes.

The resolution was 640x480 for both machines, but the anti-aliased setup looked as if it were running at much higher resolution. The wires connecting telephone poles appeared disconnected on the Voodoo3, but were continuous on the T-Buffer machine. Distant objects ceased to shimmer and pop and previously obvious jaggies on the car were completely gone.

A similar effect can be seen in the custom demo by 3dfx, who was kind enough to supply us with this 2.4MB MPEG video showing the effect in split screen. Anti-aliasing is disabled on the left and enabled on the right. The movie shows the player zooming in and out on a fence off in the distance - the effects of aliasing are extremely clear. Below are a couple of screenshots from a different portion of the demo, showing anti-aliasing in action on the sign. Enlarging these images and viewing them full screen gives the most dramatic representation of the effect. Spatial anti-aliasing has been disabled on the left and enabled on the right.

Image courtesy 3dfx Interactive

Index Temporal Anti-Aliasing: Motion Blur

Log in

Don't have an account? Sign up now