Temporal AA and Ruby: Double Cross Tech Demo
Before we dig into the tech demo section of our article (gentlemen keep your eyes at the top of the page here for now), we'll discuss new Anti-Aliasing methods that are being implemented in the new Radeon X800s from ATi.
The above diagram is a example of sample patterns for 2, 4 and 6X AA settings with ATi's new "Temporal AA" method, that is now available on X800 series cards and could also be made available in future driver releases for R3XX based cards, like the Radeon 9600, 9700 and 9800.
As the old cliche' goes, a picture is worth a thousand words, so we'll be brief. In the diagram above, you can see that at each level of standard Multi-Sample AA, there are a corresponding number of samples taken on a given pixel, which give the ability to smooth out the transitions between edge pixels and clean up an image. What Temporal AA does is alter the sample pattern slightly in 2 consecutive frames, which allows for twice the normal sample level of the standard AA setting.
We've been able to see Temporal AA in action in our labs here, although it was with a bit of struggle to get things working properly. Currently ATi, doesn't have the setting enabled in their driver control panel. We utilized a toggle switch utility that was given to us by ATi. Once enabled however, frame rates must stay above 60 frames per second, in order for Temporal AA to remain active. If frame rates drop below that watermark, the effect is disabled until frame rates return to that level. The good news is, that Temporal AA, since it doesn't actually require more samples to be taken, doesn't impact frame rate whatsoever.
In UT2004 testing, we enabled Temporal AA at 1024X768 with a 2X AA setting in the driver control panel. The result was an effect that looked very much like a 4X AA setting but with no impact on performance. It's impressive to say the least but not without its caveats. Unfortunately, we weren't able to actually benchmark and prove out the performance impact of Temporal AA, since the method requires Vsynch be turned on. In addition, depending on the vertical refresh rate of your monitor, since Temporal AA renders one frame per every two vertical synchs, frame rates reported may be cut in half in some instances. So in the end we pouted a bit, because we couldn't benchmark it. However, the effect is quite nice, as long as you keep the frame rate up. Obviously, since these powerful new Radeon X800 series cards will be driving the action, that shouldn't be a problem.
Now then, since we have all the heavy lifting of the technical aspects of the R420 architecture and its new features out of the way, we might as well kick back for a little bit of entertainment, courtesy of ATi's new spokeswomen, Ruby. The following screen captures were taken from an actual game engine demo that ATi developed with a Production Studio partner by the name of RhinoFX. If you thought NVIDIA's Nalu was impressive, Ruby is going to knock your socks off. By the way, we enabled FRAPS while capturing these frames, so pay close attention to the frame rate counter in the top right corner of each shot.
As you can see, Ruby: Double Cross is an absolutely amazing work of a combination of cinematic effects, 3D graphics technology, scene setting and even a decent story line. The demo's engine itself sports advanced 3D rendering techniques such as depth of field, hair rendering, soft shadows, skin rendering with sub-surface particle scattering, reflection/refraction and a whole lot more. Ruby also makes heavy use of Normal Maps and 3Dc to provide high character detail, while keeping the polygon count in check.
The team used real actors to simulate character animations and the entire "Making Ruby" production that ATi presented to us was nothing short of amazing. You see that backbend Ruby does avoiding a round-house kick dished out by one of those evil Ninja dudes? Yeah, you guessed it, a real Martial Arts Stunt Women did that move... at full speed. In short... Hell yes, Ruby is just plain bad-ass.
What's equally impressive are the frame rates Ruby can run at. On the Radeon X800 XT, it was peaking above 50 fps to as low as just under 30 fps. Incidentally, we asked what the average shader instruction length is for the Ruby engine and an ATi Engineer responded that it was only a few hundred instructions or so. And yes, this demo was built, within the confines of PS2.0 technology. Ruby is very much a showcase of the level of realism and sheer graphical impact that can be delivered in a 3D Gaming experience on ATi Radeon X800 series Graphics Cards, a true testament to what a tech demo is all about.