Nvidia and AMD have been going on about tessellation for ages, but what is it, and why is Nvidia's all-in approach misleading?
Tessellation is a graphical technique that has gotten a lot of love over recent times. This is due to the fact that the Fermi architecture underpinning the current generation of NVIDIA cards packs a lot of tessellation grunt, moreso than the competing cards from AMD. This has led to tessellation becoming almost a warcry for NVIDIA, who can’t pass up any opportunity to run a tessellation heavy benchmark and point out how awesome the hardware is at it.
So it is a technology where there are clearly two camps, both pushing it in different ways. But what is tessellation and should we even care if it is there or not?
It is important to realise that tessellation is nothing new. It has been around on AMD’s hardware for years, is supported by the Xbox 360 and has also popped up in other graphics cards. But with DX 11 it has not only become mandatory feature, but also one that marketers want to use to sell video cards.
So what is tessellation (besides a marketing tool)? It is a way of generating more complex geometry in a 3D scene. It is best employed as a level of detail tool, making things look more intricate when close to the camera, and then losing a lot of that fine detail as the camera moves away. It give the illusion of complexity without the performance overhead that would come from rendering everything in high detail.
Like everything in 3D graphics it is a trick, if you stop and look at a tessellated scene you can pick out some telltale signs that the geometry is fake. Take a look at the screenshot below from Dragon Age 2 (which is a very pretty game once high res textures are applied). Especially check out the character’s feet. You can see that they are standing on flat ground, but this ground has been tessellated and appears to rise up to partially obscure the character’s feet. This is really obvious when pointed out in a screenshot, but when you are playing the game it is only noticeable when you are searching for it.
The defacto benchmark for tessellation performance is Unigine’s Heaven. This allows varying levels of tessellation to be applied, and it can then generate a performance score based off a series of scenes. NVIDIA loves Heaven because it demonstrates what its Fermi architecture is capable of. Because the GPUs have more tessellation hardware than AMDs, NVIDIA will always win out. Which is why it seems that journalists have to sit through the benchmark (often in 3D) everytime Nvidia does a briefing.
Crank the details down from Extreme and AMD’s RADEON cards perform just fine in Heaven. In fact, its 6000 series has upped tessellation performance a lot from the 5000 series. But this is one case where brute force isn’t a great solution. If you look at the images being pumped out by Heaven in Extreme, they look almost distorted. Cobblestones go from flat and boring with no tessellation, to suitably lumpy with a moderate amount to unfeasibly mountainous at extreme. This is graphically impressive, sure, but a real game wouldn’t have such impassible streetscapes.
This is important because because it tempers the big numbers that come out of benchmarks. Extreme results from Heaven should only really be used theoretically, as they don’t approximate the real world implementation of tesellation. Just because one architecture excels at a single feature doesn’t mean that we should focus on that feature.
In reality anything with a tessellation engine (namely any DX11 hardware) will be able to cope with the demands of games now and in the near future, no matter what NVIDIA’s favourite benchmark says.