Recently everyone went insane about tesselation. Like every other shitstorm, there is a lot of BS about it.

So to be clear: tesselation itself can only smooth objects, not make them more detailed. The "magic" comes from displacement mapping -- and it's not that easy.
For example I was browsing today Gamedev.net's Image of the Day forum and found this example of tesselation:

Can you tell me that in above picture, tesselation is state-of-the-art technology, allowing extreme 3D experiences? Would you believe yourself?
I would split all bump mapping effects into 2 categories: flat surfaces & others. For flat surfaces we have wonderful raytrace-in-pixel-shader solutions right now, like relief mapping or my favorite Cone Step Mapping. Look:
from Bruno Evangelista Detailed Surface
Apart from lighting which doesn't match (due to some shader errors probably), can you tell the difference? I mean, can you tell which is tesselated and displacement mapped and which is raytraced in pixel shader?
But flat surfaces are (very) easy case. What about complex meshes? The truth is: both parallax and displacement mapping will help as very little. Have you ever tried to bake heightmaps to use them will those techniques? There just aren't any tools available that would create good heightmaps. For this reason most games stick to normal mapping for complex meshes (or eventually do parallax with very little height which doesn't improve quality much, but can provide nice artifacs -- and that artifacts are growing along with parallax strength). Sure, Unigine graphics team could spend a lot of time to polish their dragon's textures -- well, thorns are quite easy as you can grab flat polygon and draw a circle with gradient on it:
But what next? How long does it take to create ready-to-use mesh with real displacement map? I'm not saying that tesselation is bad. It's just greatly overrated.
BTW: Displacement mapping seems to have advantage about silhouette modifications. But look at this:

It's from Nvidia's SDK -- pure parallax mapping with fins extrusion. And look how does the shadow mapping work on parallax mapped surface. Now, this is something!
Comments:
-
anonymous:
Tessellation doesn't automatically improve game art; that's for certain. It depends very much what specifically you're referring to when you say "tessellation", but there are a couple advantages I could imagine (this isn't an area of expertise for me):
For example, aren't normal maps and displacement maps usually particular to a specific model? A tessellation algorithm on the other hand usually applies to a class of models: anything that conforms to a same control surface definition. In the editor and design world, where the models are fully dynamic, I can imagine having a tessellation algorithm running on card might be easier to work with than trying to dynamically generate normal maps on the fly.
The tessellation algorithm, since it is procedural, should allow for implicit surface patch definitions to be refined indefinitely. Theoretically, when zooming in close on an object, it can refine more aggressively up to (depending on the algorithm) a pixel-perfect level of detail. A pixel-perfect LOD is likely overkill for a performance-bound game, but in the case of designing the smooth surface of the hood of a car (i.e. one for driving in real life, not a video game), that level of analytic detail afforded from an implicit surface might be a requirement.
I really enjoy this blog. Keep writing!26.05.2010 04:18:25
-
I agree with you. It's now a buzzword. Everyone is mad about it... but it's rather yet another small step forward - not a leap.
26.05.2010 09:46:04
-
Tessellation can't improve speed/quality of sculpting programs like ZBrush. They must physically store high-poly mesh so tessellation can't really help -- it would need to recalculate displacement maps after every update which just isn't an option.
Yes, it could improve speed/quality of CAD-like application where you operate on bezier surfaces. But will they really use it? Every new OpenGL release we hear that "they can't remove some old and ugly and deprecated glFoos because some loyal CAD applications still use them". They will use both old glFoos and 4.0 tessellation? I can hardly believe this...
And do they really need them? Is few million (static) triangles too little to render CAD models? I'm not an expert, but I guess it's not.
And LOD is another issue I've forgotten to mention. Some people really believed that tessellation (even with DM!) will allow them to use 100-tri meshes and create higher LODs on-the-fly :) Of course, it won't. It could only provide maximum LOD (such as extreme zoom) from already existing highest level of details -- given that models are prepared for this (look at that space marine again -- tricound increased 50x, quality improved very slightly and only in some areas).26.05.2010 12:16:32
-
Reg:
I'm more enthusiastic about tesselation and displacement mapping than you. If we want to categorize stuff, I'd say the ultimage goal is just more and more detailed mesh (more and smaller polygons) and all the mapping techniques like normal mapping or parallax mapping and its flavors are just faking this. Tesselation with displacement mapping is closer to the "real" solution or just an efficient, GPU-accelerated way of doing it. I predict it will soon become widely used and stay in rendering world until we could just send very detailed meshes to the GPU.
As for creating displacements maps, probably better tools will have to be created and artists will have to start making displacement maps just as they do normal maps today. But I believe it is possible.30.05.2010 20:02:47
-
And Tesselation *is* the cure for AIDS, you just don't know it yet.
I'm into terrain rendering and stuff, so here's a classical problem. Want to have a mesh with 32k*32k vertices. yeah not possible. so what? Well LODing of course. But wait, all that updates from your virtual heightmap and the seam joining and the LOD computation is going to hit your CPU and Bus, and hit them hard. So at a certain point, the cost of cpu LODing starts to munch happily into whatever performance benefit you got until you can neither LOD nor Bruteforce it all trough. Meanwhile the hundreds (or thousands) of shader cores on your GPU are just twiddling their thumbs waiting for your granddady CPU and bus to finish their bytetarding.
So what now? Well scale down on the number of computed primitives of course, but wait, didn't we start the whole thing to get nice looking terrain, and now we just have gigantic but coarse looking terrain. Bummer.
Now just for good measure throw in tesselation shaders and write a LODing algorithm on that, and voila, magic! You push a coarsely and cheaply LODed mesh from the cpu over the bus to the gpu, and then let the gpu do a second pass of LODing from your detailed heightmap and suddenly you can display all your gazillion of square miles of terrain at a virtually infinite resolution without killing your graphics card.
02.11.2010 16:19:33
-
Heightmap is a very specific case. Yes -- tesselation can improve heightmap rendering. But then tell me -- did you ever complain about heightmap quality in any modern game? I didn't :)
04.11.2010 02:05:45
-
Zwirtle:
Normal maps were just a small detail back then.
But when a game, its engine, and its asset creation pipeline were fully design with normal mapping in mind, games started looking way better. That was the biggest leap on graphical fidelity from last generation on console game to thins one.
Of course tesselation brings lots of complications and will not make games instantly better, but as soon as developers figure the artifacts out and make a pipeline that can handle them, its gonna be the next gears of wars or doom 3...17.06.2011 00:48:50