11.4 Linear Components and Polynomial Surfaces 523
use of the de Casteljau algorithm—portions of the surface that could not possibly
contain the intersection are no longer considered. Once the size of the successively
clipped patch reaches a specified size threshhold, the intersection is computed to be
the center of the sufficiently small patch.
Fournier and Buchanan (1984) describe a method in which Chebyshev polyno-
mials are used both to represent the polynomial surface and to create tight bounding
boxes. The patch is approximated by adaptively subdividing it into a large number
of bilinear patches. These bilinear patches are organized into a bounding box hier-
archy to speed up ray intersections. The bounding box hierarchy is traversed to the
leaf node intersecting the ray, and the intersection of the ray with the bilinear patch
at that leaf is used as the (approximate) intersection of the ray with the surface.
Both of these methods were analyzed by Campagna, Slusallek, and Seidel (1997).
Their results show what you might expect—the B
´
ezier clipping approach was rela-
tively slower than the Chebyshev boxing method (25–30%). They also noted that the
Chebyshev boxing approach can only handle integral patches. As a result of these
analyses, they developed their own bounding volume hierarchy approach that could
handle rational patches and that was of comparable speed to the Chebyshev boxing
approach.
Toth (1985) describes a ray intersection algorithm that is also based on Kajiya’s
approach; it also uses Newton iteration, but solves the problem of providing a good
initial guess by the use of interval analysis techniques.
The general structure of the algorithm we’ll present here has been utilized by
Martin et al. (2000), Sweeney and Bartels (1986), and Campagna, Slusallek, and
Seidel (1997). They all share a few basic ideas, which we’ll now address.
Intersecting a Ray and a Parametric Polynomial Surface
Polynomial surfaces may be represented in your choice of basis. Here, we use the
B
´
ezier basis because any polynomial can be converted to this basis and because we
can take advantage of some of the properties of the B
´
ezier basis in our algorithm.
Our ray is defined in the usual fashion:
L(t) = P + t
ˆ
d
Following Kajiya (1982), we represent this ray as the intersection of two planes:
P
0
: a
0
x +b
0
y +c
0
z + d
0
= 0
P
1
: a
1
x +b
1
y +c
1
z + d
1
= 0
If we let
n
0
=
[
a
0
b
0
c
0
]
n
1
=
[
a
1
b
1
c
1
]