i
i
i
i
i
i
i
i
13.6. Efficient Tessellation 643
Further Reading and Resources
The topic of curves and surfaces is huge, and for more information, it is
best to consult the books that focus solely on this topic. Mortenson’s
book [905] serves as a good general introduction to geometric modeling.
Books by Farin [332, 335], and by Hoschek and Lasser [569] are general
and treat many aspects of Computer Aided Geometric Design (CAGD). For
implicit surfaces, consult the excellent book by Bloomenthal et al. [117].
For much more information on subdivision surfaces, consult Warren and
Heimer’s book [1328], and the SIGGRAPH course notes on “Subdivision
for Modeling and Animation” [1415] by Zorin et al.
For spline interpolation, we refer the interested reader to Watt and
Watt [1330], Rogers [1076], and the Killer-B’s book [68]. Many proper-
ties of Bernstein polynomials, both for curves and surfaces, are given by
Goldman [416]. Almost everything about triangular B´ezier surfaces can be
found in Farin’s article [331]. Another class of rational curves and surfaces
is the Non-Uniform Rational B-Splines (NURBS) [334, 1015, 1078].
An easy-to-read article on how to implement a subdivision algorithm
is given by Sharp [1160], which is a follow-up to his article on subdivi-
sion surface theory [1159]. While Kobbelt’s
√
3-scheme is approximating,
there is also an interpolating
√
3-scheme [706]. Proposals for implementing
Loop’s subdivision scheme in hardware have been presented by various re-
searchers [88, 1036]. Biermann et al. [86] present schemes that have normal
control, i.e., that a normal can be set at a vertex and a tangent-plane con-
tinuous surface generated. Many good presentations on continuity analysis
on subdivision surfaces are available [679, 1056, 1328, 1412, 1414, 1415].
See also Stam’s paper [1212] on how to evaluate Catmull-Clark surfaces at
arbitrary parameter values using explicit formulae.
There are some different techniques for performing repeated subdivision
or tessellation on the GPU [147, 1175]. Most of these render out vertices
to two-dimensional textures and perform subdivision repeatedly until some
convergence criterion is fulfilled. Loop and Blinn use the GPU to render
piecewise algebraic surfaces, i.e., without any tessellation [789]. This looks
convincing, but on current GPUs, this disables Z-culling (Section 18.3.7)
and any early-Z test.