Graphics Reference
In-Depth Information
Figure 9.38. Additional normal vector control points.
(9.6)
(9.7)
(9.8)
Normal Vectors
Tessellation of normal vectors is done on a quadratic basis, requiring an additional four
control points. Initially, this seems unexpected, because it differs from the positional tes-
sellation, which is cubic.
The original research paper (Vlachos, Peters, Boyd, & Mitchell, 2001) makes a par-
ticular case for this decision, based on simplicity. The added complexity of calculations to
generate matching cubic normals for a generalized case is prohibitively difficult without
producing an equivalent improvement in final image quality. While modern GPUs are or-
ders of magnitude faster than those that introduced TruForm, this argument is still valid—
why waste valuable processing time for no good reason?
Figure 9.38 shows the additional control points (green) required for quadratic normal
interpolation: it is simply a case of putting a midpoint on each edge of the triangle, along
with the original per-vertex normal vectors (blue) provided by the application.
To generate the control vector for the midpoint of each edge, we use reflection about
a plane perpendicular to the edge currently being processed. This is necessary to allow the
quadratic basis to approximate the geometric inflections that are possible with the cubic
position tessellation.
Consider Figure 9.39, which shows the midpoint normal vector (orange) as a simple
average of the vector at either end of the edge (dark green). Figure 9.40 shows the same
Search WWH ::




Custom Search