11.4 Linear Components and Polynomial Surfaces 527
Sweeney and Bartels (1986) use axis-aligned bounding boxes because they are sim-
ple to compute and efficient to intersect with a ray. Both approaches begin by taking
a preprocessing step consisting of refining the surface, using the Oslo algorithm (Co-
hen, Lyche, and Riesenfeld 1980; Goldman and Lyche 1993). In the case of Martin et
al. (2000), a heuristic is employed to estimate the number of additional knots to in-
sert; this heuristic takes into account estimates of the curvature and arc length. These
knots are then inserted, and each knot is increased in multiplicity up to the degree of
the patch in each of the directions; this results in a (rational) B
´
ezier patch between
each pair of distinct knots. The n × m control mesh for each B
´
ezier subpatch is then
bounded with an axis-aligned bounding box. These bounding boxes are then orga-
nized into a hierarchical structure.
In the case of Sweeney and Bartels (1986), the Oslo algorithm is again used
to refine the surface. Their refinement-level criteria are based on the (projected)
size of the quadrilateral facets induced by the refinement, and whether the re-
fined knots constitute “acceptably good starting guesses for the Newton iteration.”
They, too, build a hierarchy of bounding boxes, but their approach differs from
that of Martin et al. (2000): they start by creating a bounding box around each re-
fined vertex, each of which overlaps its neighbors by some globally specified factor.
These overlapping bounding boxes are then combined into a hierarchy of bounding
volumes.
In either case, the leaf nodes of the hierarchy contain parameter values for the
regions of the surface they represent; in the method of Martin et al. (2000), the leaf
nodes contain the minimum and maximum parameter values (in each direction) for
the B
´
ezier (sub)patches they represent, and in the method of Sweeney and Bartels
(1986), the leaf nodes contain the parameter values associated with the refined vertex.
In either case, the (u, v) parameter is used as the starting guess for the Newton
iteration, once it is determined that the ray has intersected a leaf’s bounding box.
Figure 11.21 shows the basic idea of the use of bounding volumes for a curve,
for ease of illustration. The refined vertices are shown in solid black; once these are
computed, the multiplicity of the knots is increased so that we get a B
´
ezier (sub)curve
between each pair of refined vertices. The control points for each (sub)curve then are
used to define an axis-aligned bounding box, and the parameter values associated
with the control points serve as the initial guess for the Newton iteration, once a ray
has been determined to intersect a leaf ’s bounding box.
Figure 11.22 shows how the hierarchy of bounding boxes can be built up from the
leaf nodes—adjacent pairs of subcurve bounding boxes are combined into a higher-
level bounding box, and pairs of these are combined, and so on, until the hierarchy is
capped with a single bounding box that encompasses the entire surface.
An alternative to using the Oslo algorithm for the refinement would be to use
an adaptive subdivision algorithm. The usual trade-offs apply—an adaptive subdivi-
sion scheme will generally produce a “better” tessellation of the surface, in that the
number of points of evaluation and their relative positioning will more accurately
reflect the scale and curvature of the surface, but at a cost of efficiency (the prepro-
cessing step will be slower). However, this cost may be more than made up for in the