Graphics Reference
In-Depth Information
only the triangle and quad primitive types are covered, although line primitives share many
of the same properties.
It is also important to note that any factors less than or equal to zero (or NaN) cull
the primitive, which can be useful in more complex or efficient algorithms—why tessellate
a back-facing primitive? Simply cull it in the hull shader! In most cases, it simply sets a
minimum value of 1.0 for tessellation factors.
4.4.1 Edge Factors
We begin our discussion of the tessellation factors with edge factors. As the name suggests,
the three or four values provided for triangle or quad domains correspond directly to the
three or four edges that these two primitives have. The fixed function tessellator simply
divides up each edge, according to the matching tessellation factor.
Given that a common use for this technology is to generate representations of a higher-
order surface from a domain of points, it is natural to assume that the surface area (key
word: surface) is of most importance. However, in a practical implementation it is likely
that the edge factors will be the ones demanding attention.
The reasons for this are simply that individual pieces of geometry don't exist in isola-
tion, and that many patches, if not all, will have adjacent patches. These patches join up
at the edges; thus; for a continuous surface, you absolutely must tessellate the edges that
match up. If you were to have two quads share the same edge but have different tessella-
tion factors, you would likely see gaps in the geometry, as demonstrated in Figure 4.13 by
the two orange arrows in gaps along a shared edge where tessellation levels clearly don't
match.
Figure 4.1 3. Gaps due to mis-matching edge factors.
Search WWH ::




Custom Search