Tessellation has been around ever since the launch of Microsoft's Xbox 360 in late 2005 – the ATI-designed Xenos GPU included a dedicated hardware tessellation unit.
The reason behind the addition was quite simple back then; it was to improve the content authoring process and enable developers and artists to create more realistic and complex characters without the huge graphics memory overheads.
Basically, an object further away will have less detail and fewer triangles because it's harder to see, but as it comes closer to the viewer and fills the screen the number of triangles for that particular object increase exponentially to increase the detail and make it look more realistic. The beauty is that when the whole rendered image is considered, the average triangle render count remains more constant so there are less sudden slow downs and slideshows for the player.
Traditionally, character creation moves from a Sub-D model, to an animated and displacement-mapped model before a polygon mesh is applied to it. Once the mesh has been applied, it is then scaled back to various levels of detail (LODs) before it's even sent to the GPU. The various LODs can either be used for different classes of hardware, or they can be used when characters, or objects for that matter, are further away from the player – adding more detail to a scene with as small a performance hit as possible.
Click to enlarge
These performance implications are even more real in console development because hardware is often very limited. In saying that though, there are also some massive benefits to tessellation on the PC platform as well. And that's part of the reason why AMD introduced the tessellator hardware in the Radeon HD 2900 XT—and has included it in every subsequent GPU it has released. It hasn't really been used so far, but it has nevertheless made the industry as a whole more aware of the potential benefits offered by hardware-based tessellation.
Having spoken with both Microsoft's Kevin Gee and AMD's Richard Huddy, we managed to confirm that the Xbox 360's (and by extension the Radeon HD 2000, 3000 and 4000 series) tessellator is not compatible with DirectX 11, but the DX11 tessellator is a superset of what's already on the market. Another good thing is that the Radeon HD 4000 series tessellator did go through a few changes, giving developers access to the feature in DirectX 10 applications – this wasn't possible with the tessellation unit inside both the HD 2000 and 3000 series GPUs.
What's more, although developers are unlikely to use it for applications shipping today, RV7xx's tessellator does prove to be a useful stepping stone because it allows developers and artists to experiment with tessellation today in a programming environment that's going to be fairly similar to DirectX 11. After all, DirectX 11's graphics pipeline is a superset of DirectX 10 – the major addition being the tessellator.
During his presentation at Nvision, Gee talked about how the DirectX 11 tessellation unit was more robust and more flexible than the tessellation units in AMD's recent GPUs (including Xenos). But interestingly, it still isn't programmable – it relies on the Hull Shader to feed it the right information and then for the Domain Shader to take the tessellator's data and output it into vertices before it moves down the pipeline.