Introduction
Tessellation and geometry shaders provide programmers with additional ways to modify geometry as it progresses through the shader pipeline. Geometry shaders can be used to add, modify, or delete geometry in a very precise and user-controlled manner. Tessellation shaders can also be configured to automatically subdivide geometry to various degrees (levels of detail), potentially creating immensely dense geometry via the GPU.
In this chapter, we'll look at several examples of geometry and tessellation shaders in various contexts. However, before we get into the recipes, let's investigate how all of this fits together.
The shader pipeline extended
The following diagram shows a simplified view of the shader pipeline, when the shader program includes geometry and tessellation shaders:
The tessellation portion of the shader pipeline includes two stages: the Tessellation Control Shader (TCS) and the Tessellation Evaluation Shader (TES). The geometry shader follows the tessellation stages...