Originally Posted by FlakMagnet
I have a (possibly) dumb question...
Why do the flat surfaces in the demo need to be tessellated also? My understanding of tessellation is that it generates additional triangles that actually change the surface of an object - say to make it more bumpy. But then why does this implementation generate 100's of triangles for a flat surface? The additional triangles in this case do nothing to change the shape of the object.
If tessellation only added triangles where they were needed, it would greatly reduce the number of required triangles to get the same result.
Or am I missing something here?
Nope, you are right that properly done view and surface/slope dependant tesselation is desireable and is something that should be used in most cases.
Sadly many of the demos only have distance dependant tesselation and many of those do not even account the size of original quad. (when equally close both huge and 1 pixel quads are tesselated to same 64 triangles.)
This is clearly seen is haven as things like doors get ridiculously over tesselated as they are done with way too many polygons originally, same goes to that dragon.
Dragons spikes also show what happens when tesselation factor is low and you have high frequency details on the object.
When you come closer to the dragon the spikes suddenly grow from nothing.
This is something that could be fixed by view and surface dependant tesselation, you could sample the surface with higher rate and tesslate only where really needed.
On edges the amount of small polygons would be higher, but camera facing polygons would be bigger.
More work on surface evaluation, but far less pixel shading due to the very inefficent rendering.