Direct X 11 Tesselation

How does it work? Do you make a low poly model then create a map that decides how it will tesselate?

I think it works with normal maps. This is just a tutorial for a 3d suite (blender) but the concept is fairly wel explained

There are normle maps, Bump maps, Specular maps and displacement maps along with a lot more maps used in 3D modeling. 

Tessellation uses displacement maps. Basicly what people do is start off with a basic low polly 3D model, Model a new, higher poly model and then using computer wizardry converts the 2 models into one with a displacement map using some mathematical calculations which I am not familiar with.

There are other methods but that is my understanding.

Bump maps is the most basic, Manipulates how light bounces off an object to simulate basic geomitry.

Normle maps do the same thing but simulates how light bounces off the object in 3D compaired to Bump maps 2D algerethem. 

Displacement maps are the only maps I know that will physicly change the shape of an object through tessellation. In my eyes it will be the future when it comes to LOD in games as current methods require the use of multiple models while tesselation uses a displacement map that can be scaled down on the fly.

Thanks, I've worked with normal maps, bump maps, spec maps, and displacement maps before. Would all the polygons on the low res model have to be quads in order for it to tesselate properly?

I think it is better to use tris but I honstly have very little knowledge in it other than having ready up on it. I would recommend you to go visit the polycount forum for help. There are not a lot of people in the industry in this forum.There are a few  But still not enough for you to get a true answer.

That video you were link to doesn't explain what tessellation is, this one does:

How does it work? Do you make a low poly model then create a map that decides how it will tesselate?

Yes, basically. It's a lot more work for the character artist now. I remember an interview from one of the devs of Metro Last Light and they touched on this very subject. Tessellation is real-time generation of polygons on the areas of a model that a game engine is told to generate for (the closer the camera is to that object the more polygons it generates to prevent blocky form). Normal Maps, Bump Maps, and Displacement maps are all texture fakery, and, a static one at that, as oppose to the dynamic generation of tessellation.

As for the type of polys, the general rule is quads for cg and tris for game engines. Modern game engines will automatically convert your quad model into tris so this shouldn't matter, plus, if you're a modeler you should always model in quad first anyways.


quads is "just" a visual arrangement, very useful for topology, uv-mapping and a lot more, but in the end all software calculates in tris, thasts because a plane is always best defined by the minimum verts needed to form it, that's 3. so in the end it doesn't matter at a software level. 


BUT! (that's why the word just is quoted) topology (mostly for animation) an uv-maping is extremely important to apply well the textures (and the displacement maps and normals are normaly textures) so you'll be better working with quads.  

Thats my personal experience, others may tell you other things.

However in games Quads are always converted into tres and so for the best topology in the finished product tres is prefered would it not? The case would be true if it were animation but in animation you would be better off working in the full detail model in the first place.

Tessellation is real-time generation of polygons on the areas of a model that a game engine is told to generate for (the closer the camera is to that object the more polygons it generates to prevent blocky form)

For what I understand here you described a subsurf with displacement map being applied with LoD... so..¿may the displacement map is still needed  for tesselation? It also reminds me what they decribed in the video to multiresolution

Well I only work with blender and simple animation so I think it depends on the software, for blender they always tell me to mantain the mesh in quads for it handles better subsurf and posterior topology for animation, but I think It just matters for the UI implementation, all 3d calculations are in tris, even if its being shown quads.

Thinking back, I always work in Quads aswell. However in the context of games, How Models are rendered can lead to artifacts with Quads but ether should be fine I guess.

I work in 3DS Max

Download DirectX SDK, it has a pretty good explanation of how tesselation in modern GPUs works. It's not the only way tesselation can be implemented, but it's what's being used in real time graphics today.

Tesselation does not exist for the sake of existence alone. It solves a very particular problem: geometry bandwidth. What it boils down to is a set of rendering stages in which primitives (triangles and lines - no hardware deals directly with quads these days) and information about their adjacency pass through programmable and fixed blocks to produce extra geometry that did not exist when data was entering the vertex shader.

Like with everything, there are drawback to tesselation. It affects content pipeline, which is a big no-no for many projects (hence limited use of tesselation). It can't do magic and since you're running two shaders, the smarter you want tesselation to be about the surface generated, the more expensive it gets.

So how does it work? Vetices transformed by the VS enter Hull Shader with some extra information about adjacency (i.e. what are the positions of vertices that make up tris adjacent to the one HS is processing) and build mathematical model of the surface on which this triangle exists. Then fixed pipeline step of tesselation happens and new triangles are produced that exist on the same surface described before (BTW: tesselation is contiguous process so you won't have ugly popup of new vertices created). These new triangles then enter Doman Shader, where further refinement of the created geometry happens.

At any point in time, like with other shaders, you can sample textures and do other things to get the result you need. But creating this extra pieces of data, hints to the process of tesselation requires aforementioned changes to the content pipelines. It is next to impossible to get this automated so stuff requires input from art folks. For that to happen they have to be able to eyeball results of their tweaked model. So it's an investment in tools and people.

Tesselation works pretty well on contiguous, non-organic surfaces. So cars are easier to get right than people. Water, cloth or terrain is a great match for tesselation too. This comes mostly from the fact, that you can either leave the refinements of DS/HS to the programmer or guides for art department WRT how model should be made can be pretty concise (e.g. you ask car modelers to highlight hard edges where extra processing needs to happen to eliminate seams and T-junctions).

It's an old thread, I know. But I hope that this explanation helps someone, someday. ;)