<p>The main purpose of tesselation is to increase the resolution of the mesh, while only transferring a small amount of triangle data around. In addition, tessellation allows you to dynamically change the LOD of the mesh, so you can <a href="http://www.g-truc.net/post-0662.html">optimize your shader calls.</a></p>

<p>So, we can pass the GPU, say, 3000 triangles, and have it tesselate it to 300000 triangles. We are essentially trading storage space/bandwidth for compute power. Since GPUs have lots and lots of compute, and memory is limited/slow, this is a pretty good tradeoff.</p>

<p>As for "not being heavily used in real-time graphics". I somewhat disagree. Many AAA games have been using tessellation for a long time. That said, tessellation is <em>hard</em> to get right. Done wrong, tesselation can lead to lots of problems, such as <a href="https://developer.nvidia.com/content/dynamic-hardware-tessellation-basics">cracking</a>, or over tessellating to sub-pixel triangles, which <a href="http://www.g-truc.net/post-0662.html">destroys your fill rate</a>.</p>

<p>Combined, these problems make it difficult to implement good and fast tessellation for your everyday person. Thus, most of the uses of tessellation you see nowadays are in AA or AAA games, game engines, and offline rendering tools.</p>

<p>That said, there is active research going on that is trying to better utilize the tessellation hardware, and make it easier to use. For example: <a href="http://www.graphics.stanford.edu/~niessner/brainerd2016efficient.html">Efficient GPU Rendering of Subdivision Surfaces using Adaptive Quadtrees</a></p>

<p>In the end, tessellation is a great feature, but is difficult to get right</p>

CC BY-SA 3.0
2016-05-07T10:07:40.883Z
This is a great and informative answer, but Daniel's answer talks more about the tesselation in a historical context, which is what my question was really about. But thanks your answer. :)
ApoorvaJ
CC BY-SA 3.0
2016-05-05T14:49:18.677Z
2016-05-05T14:49:18.677Z
RichieSams
<p>Tessellation has been touted as one of the major features in newer graphics APIs like DirecX 11, and it is shown as a standalone stage in a modern graphics pipeline.</p>

<p>Compared to the amount of hardware and software attention given to this feature, it doesn't seem to be heavily used in real-time graphics. So this doesn't seem to be a feature that arose out of graphical demand.</p>

<p>Then why did tessellation become such a prominent feature? To cater to the demands of non-realtime rendering? As a side-effect of the increasing shift in GPU architecture as generalized parallel processors in heterogeneous computing? Or is this a forward-thinking feature that will be used in graphics as tessellation-capable GPUs become increasingly common?</p>

<gpu><directx11><tesselation>
Why did tessellation come to be a prominent feature?
ApoorvaJ
# Why did tessellation come to be a prominent feature?

(Asked by: username_0 on 2016-05-05)

Tessellation has been touted as one of the major features in newer graphics APIs like DirecX 11, and it is shown as a standalone stage in a modern graphics pipeline.

Compared to the amount of hardware and software attention given to this feature, it doesn't seem to be heavily used in real-time graphics. So this doesn't seem to be a feature that arose out of graphical demand.

Then why did tessellation become such a prominent feature? To cater to the demands of non-realtime rendering? As a side-effect of the increasing shift in GPU architecture as generalized parallel processors in heterogeneous computing? Or is this a forward-thinking feature that will be used in graphics as tessellation-capable GPUs become increasingly common?

**Tags:** gpu, directx11, tesselation


---

## 1 answers

### Answer by username_1 on 2016-05-05. Score: 11

The main purpose of tesselation is to increase the resolution of the mesh, while only transferring a small amount of triangle data around. In addition, tessellation allows you to dynamically change the LOD of the mesh, so you can [optimize your shader calls.](http://www.g-truc.net/post-0662.html)

So, we can pass the GPU, say, 3000 triangles, and have it tesselate it to 300000 triangles. We are essentially trading storage space/bandwidth for compute power. Since GPUs have lots and lots of compute, and memory is limited/slow, this is a pretty good tradeoff.

As for "not being heavily used in real-time graphics". I somewhat disagree. Many AAA games have been using tessellation for a long time. That said, tessellation is *hard* to get right. Done wrong, tesselation can lead to lots of problems, such as [cracking](https://developer.nvidia.com/content/dynamic-hardware-tessellation-basics), or over tessellating to sub-pixel triangles, which [destroys your fill rate](http://www.g-truc.net/post-0662.html).

Combined, these problems make it difficult to implement good and fast tessellation for your everyday person. Thus, most of the uses of tessellation you see nowadays are in AA or AAA games, game engines, and offline rendering tools.

That said, there is active research going on that is trying to better utilize the tessellation hardware, and make it easier to use. For example: [Efficient GPU Rendering of Subdivision Surfaces using Adaptive Quadtrees](http://www.graphics.stanford.edu/~niessner/brainerd2016efficient.html)

In the end, tessellation is a great feature, but is difficult to get right

> **Comments:**
> **username_0**: This is a great and informative answer, but Daniel's answer talks more about the tesselation in a historical context, which is what my question was really about. But thanks your answer. :)  

---

