|ATI Radeon 8500: In The Flesh|
September 12, 2001 | Ben Boffey
Last weekend I was lucky enough to attend GDCE, the inaugural European Game Developers Conference, while there I spent some time in the company of some of the top software engineers from ATI's 3D Application Research Group.
ATI is of course in the process of launching their next generation of products, led by the flagship Radeon 8500. This fully "buzzword compliant" card will feature a whole new realm of possibilities for game designers (and gamers, of course), bringing unprecedented levels of realism and eye candy to video games. Of course, games that will actually use the card's special features are a while away -- it will take some time to structure content into a game that uses the special card features to their advantage, and it will take developers some time how to use the tools. Thus ATI needed an engine to demonstrate the power of their card right now, for prospective customers. The name of this engine is Sushi.
The main focus of these meetings was to look at and learn about a new graphics engine that the team have been working on to show off the power and flexibility of ATI's upcoming product lines; the following is our impressions of the demos, the 8500 chipset and what this might portend for the future of gaming.
Sushi has taken hardware demos for ATI to an entirely new level. The Sushi engine has not only been used for demos of the new Radeon 8500 but will be used in the future for demos of as-yet unannounced product lines. I'd like to thank all those from ATI for their approachability, help and information provided, particularly Alex Vlachos, Jason Mitchell and Deanna Perkins. I'll be covering all the gory details of the three 8500 demos Waterfall, Rachel and Islands along with the previous Smartshader™ demo. Remember, every image and movie you see here is generated and rendered in real-time by the 8500 hardware -- these are not pre-rendered movies, but an actual demo of the card and its feature set.
The demos provide a good opportunity to discuss the new card technologies that the next generation of game graphics will be taking advantage of. While we oohed and ahhed over iridescent aliens and reflective armor in Halo, that effect pales in comparison to what the games just over the horizon might look like. Astounding effects such as oil floating on water, soft shadows draped over bumpy surfaces and pitted, rusty metal surfaces will all be within the reach of game developers -- and will work at little or no cost to game performance, on a card such as the 8500 or the GeForce 3 which is set up specifically to work with Pixel and Vertex Shaders. But what is a shader? Read on and find out.
What is a Shader?Shaders are small programs which run entirely on the GPU, allowing not only very powerful and fast rendering of complex scenes and effects, but a larger degree of flexibility than ever seen before.
In the past, to achieve a particular "look" for a surface in a game, a developer's options were limited. If they wanted a rock surface, they had to create a realistic texture, but it all too often looked like a picture of a rock stretched over a big shape. To add realistic effects such as lighting, these would either have to be "faked" with the texture map or actually built up with layered textures -- but cards of past generations could not layer textures in a single draw of the screen (known as a "pass") and thus the card would have to draw the scene multiple times to create the effect. As you might expect this was costly in frame rate, and even worse it stood a good chance of failing to work on certain video cards.
With programmable shaders, a developer can actually write a little program that tells the card how to draw the rock -- give it this base texture, add this bump map, add light from this angle, and use this alpha map to define the shiny and dull areas. This program runs entirely on the card, and the ability of the card to draw six textures in a single "pass" will allow such complex effects to be defined and drawn with no performance hit.
ATI have implemented and extended the two types of shader in their new Smartshader™ Technology. Firstly we have Pixel Shaders, which work at the rendering stage and allow for complex operations to be performed on every pixel within a scene in real-time without taking a severe frame-rate hit. A massive six textures can be applied in a single pass on each rendering pipeline, enabling amongst other things, the realistic object materials that can be seen in many of the screen shots. Multi-pass rendering was previously needed to give this level of detail, causing heavy memory bandwidth requirements and a general performance hit.
When six textures can be applied in a single pass and manipulated upon, it's amazing what effects are possible. Features such as custom lighting, bump-mapping and texturing have now been made possible without a performance penalty or an extremely specialized engine.
What might a pixel shader look like? Imagine a rock surface with bumps, pits and a wet shine, or a metal surface with rust which reflects light in the smooth areas, but looks dull in the rusted spots. In the illustration on this page, pixel shaders are defining the skin of the "dragon" as well as a complex distortion effect in the water which is actually simulating the optical effects of water in real-time. Don't believe us? Watch the movie!