The more polygons you throw at any 3D model, the better it will look – that’s pretty much the rule of thumb with 3D graphics. The more triangles involved in making up any part of a scene, the denser the polygon mesh and the more believable that model will be. Of course it’s not that easy to just throw exorbitant numbers of triangles at real time 3D scenes, since the amount of processing power needed to create them rises exponentially.
It’s true that this is the exact methodology that’s used by Hollywood studios when rendering computer generated animation – literally millions of triangles are thrown at each scene to make it look as realistic (or not) as possible. The difference is that each frame of a Hollywood movie will take several hours to render, while in a game with real time rendering, you need to create around 60 frames per second!
Traditionally, creating a 3D model in a real time manner involved throwing a specific number of triangles into the mix – this number is usually a compromise of what will look good and what the current generation of hardware will be able to handle. This will leave you with a very basic 3D model that looks rather blocky and unrealistic.
The next stage is to add textures to your model, usually in the form of normal maps, which will add both detail and relief. The normal map has the job of smoothing off all the angles and creating a believably textured and realistic surface, but the rougher the original model, the more detailed the normal map will need to be.
When ATI launched the Radeon X800 back in 2004, it pioneered 3Dc. This is a normal map compression method that allowed very detailed normal maps to be produced and applied to models, while keeping memory bandwidth down to a minimum. The benefit of 3Dc was that it allowed far more detailed and believable textures to be used, without the need to massively increase the amount of memory on the card.
With the HD 2000 series AMD has added a tessellation stage to the rendering model. Tessellation is potentially the Holy Grail of 3D modelling – a way to create masses of polygons for free! The tessellation stage sits between the initial model creation and the texture application stage. Basically tessellation uses subdivision surface techniques to transform a model with a modest number of polygons to one with a significant number of polygons, without the process overhead that would be associated with rendering all those triangles separately.
The result of the tessellation stage is that instead of having a rough and angled model that needs heavy texture work, you’re left with a very smooth and rounded surface that needs far less complex textures to make it look believable and real. Tessellation is something that’s not present in nVidia’s latest hardware, although the company has indicated that tessellation is indeed a very important feature, and will play a big role in the future.
Now I’m usually wary about features that are only sported by one graphics manufacturer, since it’s unlikely that developers will employ features that only address part of the target market. However, since the Xenos chip in the Xbox 360 also utilises a tessellation engine, it’s a safe bet that game developers are already utilising tessellation for Microsoft’s console. With this in mind, it shouldn’t be too difficult to use similar techniques on PC titles, allowing systems with Readeon HD 2900 XT cards to benefit.
Of course considering the development time of most games, it’s altogether possible that by the time we do see PC games that utilise tessellation, nVidia will have moved on to G90 and there’s a good chance that there will be a tessellation engine in that part when it arrives.