ABSTRACT

This chapter presents a method to implement tessellation using vertex shaders only. It only works on DX10 class hardware and above. Although the approach described is used in the context of tessellation, the same basic ideas can be used to do any sort of geometry amplification. Tessellation is a refinement technique that can be used to generate a high number of output triangles per input triangle; it can thus smooth silhouettes to generate an organic look. The only way to implement per-edge fractional tessellation factors is to send enough vertices to the vertex-shader stage to support the maximum-per-edge tessellation factor. Actually, one even needs to send two additional vertices to allow for the phasing in of the new fractional vertices on the left- and right-hand sides of the edge center to make sure that a fully symmetrical tessellation is created. Such a symmetrical tessellation is necessary to make sure that there are no gaps between meeting edges from adjacent triangles.