Martin Löwgren; Niklas Olin , pp. 41. COM/School of Computing, 2010.
With each computer game generation there is always a demand for more visually pleasing environments. This pushes game developers to create more powerful rendering techniques and game artists to create more detailed art. With a visually stunning backdrop also comes the need for high-resolution models.
A common issue is that if all models in a scene are high-resolution it would not only require immensely powerful hardware, it would also be wasteful as only the models in the foreground are close enough that we would recognize the increased details. The common solution to this problem has been to load several versions of each model containing varying amounts of detail. However this solution has the drawback that it increases our memory footprints as more models are loaded into the memory. Tessellation offers a more dynamic solution to the problem as it only requires us to load a low-resolution model and higher resolution versions can be generated during run-time on the GPU.
With the introduction of DirectX 11 tessellation is now supported in the hardware, however we are still a few years away from seeing DirectX 11 being used as the core of any 3D rendering engine. In a transitional period like this between hardware generations game developers has to tackle the dilemma that the current hardware generation has to be supported when creating games that will also utilize the next generation. This thesis focuses on comparing the performance of a tessellation scheme supported by the current hardware generation, DirectX 10, as opposed to a scheme developed for the next generation, DirectX 11.
Two prototypes, one using the Geometry shader that was introduced in DirectX 10 and the other using the fixed function tessellator introduced in DirectX 11, were built to compare the performance of tessellated model rendering. Several different variants of each prototype were tested and the general conclusion is that the tessellator performed better than the Geometry shader.