CISETR01003: Surface envelopes
Jorg Peters1 *
1 University of Florida
.................. .
Figure 1: (left:) a piecewise bicubic spline surface b. (right:) Zooming in on the sirface envelope of b. The envelope consists of the inner
triangulation e+ and outer, matching triangulation e. The triangulation sandwiches b so tightly that the surface is all but invisible in a full
view (top of right) and appears as the dark curved strip in the cut through the surface only after magnification (bottom of right). (In color, the
envelope triangles are yellow in front, blue in the back, and the enclosed bicubic spline complex is earthtone red.)
Abstract
Surface envelopes are tight, twosided enclosures of composite
spline surfaces. This paper shows how to construct the two hulls of
the enclosure so that matched triangle pairs sandwich a given non
linear, curved surface consisting of tensorproduct B6zier patches.
The main cost of the hull computation are 12 transversal lineplane
intersections per vertex. The width of the enclosure, i,e. the dis
tance between inner and outer hull can be easily measured because
it is taken on at a vertex. A onetime precomputation and optimiza
tion guarantees that the width is minimal for a set of basic splines,
and the width shrinks to 1/4 under midpoint subdivision (uniform
knot insertion). Surface envelopes yield easier point classification
and intersection testing and an improved rule with error bound for
approximately rendering curved surfaces as triangulations.
CR Categories: 1.3.5 [surface representation, splines]: 1.3.6
graphics data structures
Keywords: curved spline surface enclosure, 2sided bounds, tri
angulated surface envelope, approximate implicitization
1 Overview
The envelope of a surface may be viewed as its approximate piece
wise linear implicitization with a precise and easily computed error
bound, namely the width of the enclosure, i.e. the maximal distance
between vertices of the inner and outer triangulation. As the sur
face representation is refined, the width decreases rapidly. Working
with the envelope therefore simplifies point classification and inter
section testing. Moreover, the average of the two hulls can be used
for approximately rendering the surface as a triangulation. This
surface triangulation inherits the precise and easily computed error
bound elevating it over sampling. The maximal approximation er
ror is guaranteed to quarter for splines under midpoint subdivision.
In this paper we will see that a surface envelope can be com
*NSF NYI CCR9457806
Surface Envelopes
puted easily and robustly by a deterministic algorithm. The cost of
computing the two hulls consists of a lookup of a few precomputed
constants (the tables and software for generating tables are avail
able [10]) and a second part, specific to a given surface, whose cost
is linear in the number of output triangles. The second part consists
of forming an inner product with the second differences of the patch
coefficients and at most 12 transversal lineplane intersections per
triangle vertex. In the implementation described below, the number
of triangles of each hull is chosen to be twice the number of facets of
the control net, e.g. 18 triangles cover each side of bicubic B6zier
patch.
1.1 Prior work
The approach is based on the theory of envelopes for refinablefunc
tions [12, 9, 8, 11]. The envelope of a refinable function b is an ex
plicit twosided approximation b+, b so that b < b < b+ (c.f.
Figure 3). Choosing piecewise bilinear envelopes, the direct appli
cation of the new theory would yield bilinear surface envelopes in
interval form, i.e. with boxvalued coefficients. Such a represen
tation fits nicely with the use of interval arithmetic for tolerancing
and error maintenance [16, 6, 7] but is too expensive for down
stream applications. For example, in the simplest case, intersecting
two such representations would require forming the convex hull of
8 times 8 intersection curves of bilinear facets. The main point of
this paper therefore is to simplify the enclosures. The resulting sur
face envelopes tightly enclose a given composite nonlinear, curved
spline surface by an outer and an inner hull consisting of matched
triangles as shown in Figure 1.
In [12, 9, 15] the distance of piecewise polynomials to their
Bezier or Bspline control net was bounded in terms of second dif
ferences. [8] extends these results to the bivariate function case;
the envelope need no longer include the control polygon as well as
the function. Compared to [12, 15] this yields dramatically tighter
envelopes that will be leveraged below.
Other twosided bounding constructs have been proposed in Sig
graph papers. Surface simplification can be modified to gener
ate (locally) inner and outer hulls of triangulations [2, 14] (not of
curved surfaces). Oriented bounding boxes have been used for in
tersection testing for example in [4].
Recently Hu et al.[5, 6, 7, 17] promoted the use of interval spline
representation (see Farouki and Sederberg [16]) for tolerancing, er
ror maintenance and data fitting. The key ingredient of this use of
interval arithmetic are bounding boxes based on the positivity and
partition of unity property of the bsplines. Surface envelopes com
plement this work by offering tighter twosided bounds.
Approximation theory has long considered the closely related
problems of onesided approximation and twosided approxima
tion. Based on Buck's seminal "Applications of Duality in Approx
imation Theory" [1], DeVore [3] established the close relation of
onesided approximation to quadrature formulas with nonnegative
coefficients and gives a Remeztype algorithm for determining a
(unique) solution. Thirty more years have seen a rich body of liter
ature concerning onesided approximation. The state of the art has
been collected in the monograph [13]. The best algorithms listed
in Chapter 7 have in common that the only termination guarantee
is that a subsequence must exist that converges. Quoting [13], page
181, already in one variable 'convergence is generally very slow'.
This paper does not solve the hard problems of onesided approx
imation as formulated by the approximation theorists who strive
to establish optimality and uniqueness over all sufficiently smooth
functions rather we are satisfied with an efficiently computable
and tight approximation with a small, quantifiable error.
Figure 2: Piecewise linear upper and lower bounds, [A1] and
LA1J, of the univariate cubic function A1 with coefficients
0, 2/3, 1/3, 0.
widthdashed = 0.2893
widthsolid =0.0536
solid
Lb
Figure 3: A cubic B6zier segment with coefficients 0, 1, 1,0. The
control polygon Lb exaggerates the curve far more than the dashed
envelope b+, b. Midpoint subdivision yields an even higher enve
lope displayed as the matched pair of solid broken lines enclosing
the cubic.
2 Function envelopes
Surface envelopes are based on tight enclosures of the component
functions x(u, v), y(u, v) and z(u, v). This section illustrates the
framework first for cubics in one variable and then generalizes the
approach to the tensorproduct case.
2.1 An example in one variable
Consider a cubic polynomial in B6zier form
3
b(t) := B b = bBi(t),
i=o
Bi (t) = (1 0t)i t.
The bi are called B6zier control points or, equivalently, B6zier co
efficients. We want to enclose the graph ofb from above and from
below by piecewise linear functions h with break points at i/3,
i = 0, 1, 2, 3 as illustrated as dashed lines in Figures 2 and 3. Let
H be a basis for the space of piecewise functions with 4 equally
Surface Envelopes
spaced breakpoints on [0, 1]. Define [Bj and FB] to be vectors of
functions, and [b] and [b_ to be vectors of Bezier control points
such that the ith entry is defined by
:max{h = H h : h < Bi},
:min{h = H. h: h > Bi},
LBJ(i):= [BiJ
rB](i):= FBi]
b]6J(i):= min{b6,0},
[b (i) := max{6b,0}.
Figure 2 shows the piecewise linear lower and upper bound func
tions, [AiJ and [A1] for one cubic polynomial A1. Then it is easy
to check that (and central to the further arguments)
LBJ.] r[b + iB] [B J b = B b < LB] [J + rB]. [bT.
However, the difference between upper and lower bound,
diff(b) := ([B] [BJ) (I[/.1 I' l),
changes under the addition of a constant function k: for example, if
k > 0 is large with respect to b then
diff(b + k) a (rB] [B). k,
i.e. the difference increases linearly with k. Clearly, an enclosure
that becomes arbitrarily wide under mere translation is not desir
able. We therefore rewrite
b = (b) + Alal + A2a2,
where f(b) is a linear interpolant to the first and last control point of
b and the basis A = [A1, A2] spans the cubic polynomials whose
first and last coefficient are zero. In particular, we choose A1 and
A2 so that al and a2 are zero for any linear function. To this end
we define the vector of second differences of the control points of a
cubic f = B f as
A2f ] :=A2
I ']
:= [fo 2fl + f2, f 2f2 + f].
The difference operator maps constant and linear functions (in cu
bic Bezier representation) to the tuple [0, 0] as desired. Therefore,
ifAA = 1 if i = j and 0 else
b h(b) = A A2b,
where A. A2b = A b+A 2 A2 Ab. Specifically, we have A :=
B a1, with a = [0, 2/3, 1/3, 0] and therefore A2a [] as
shown in Figure 2. The second function, A2, is a mirror image of
A1 with respect to 1/2 and A2a2 [= [].
Finally, let Lb be the control polygon of b, i.e. the function in H
that interpolates the control points of b. Since linear functions are
exactly reproduced by their control polygon, e.g. i.i i~l) = (b),
we can improve the stability of the following estimates by subtract
ing the control polygon on both sides:
b Lb f(b) = A A2b L(C(b) + A A2b)
4= b Lb = (A LA) A2b.
We can now reapply the earlier estimate, this time to b Lb and
then add Lb to all three terms in the two inequalities. The result is
b := Lb + [A LA] [A2b] + [A LA] [A2bJ
b+ := Lb + [A LAJ. [A2b + [A LA] rA2b .
Figure 4: Control nets of the piecewise bilinear upper and lower
bounds of the 12 antidifference basis functions A, of degree 3 x 3
corresponding to the second difference operator with differences
A2 shown in Figure 6.
Figure 5: The second envelope of Figure 4.
The difference between the upper and the lower bound is the width.
width(b) := b+ b = ([A LA] [A LA]). A2bl,
where A2b1(i) := Ab > 0.
As is evident from the factors A2b, the width is invariant under
addition of linear terms to b. We also note that if [A LAJ takes
on positive values or [A LA] takes on negative values then the
control polygon Lb need not lie in the envelope and b+ and b
can approximate b with less error than Lb as illustrated in Figure
3. PROOF Since A2b shrinks to less or equal 1/4 its size with each
midpoint subdivision, the envelope can be adaptively refined and
converges fast.
2.2 Bivariate function envelopes
A tensorproduct polynomial b(u, v) of degree di, d2 is in Bezier
form if
dl d2
di d
where B (t)= d! (1 t) d k
(d k)!k!
Here denotes the inner product between the vector b of Bezier
coefficients bi6 and the vector B of the basis functions Bd1 Bd2. A
bicubic patch in I has 4 4 coefficients bi We obtain the
control net of the patch by connecting bij to bi+l,j, bi,j+l, bi1j
and bij1 whenever the all subscripts lie between 0 and the degree.
The control polyhedron Lb is the piecewise bilinear interpolant to
4QP 4.
00^ e
Surface Envelopes
1 2 1
2 4 2
1 2 1
9 6 3
6 4 12
3 2 1
(,_^ (pL
Figure 6: Difference masks A I, ri and the corresponding control
nets A, (right) for tensor product polynomials of bidegree 3 x 4.
The control nets A, are scaled by 12.
each quadrilateral of the control net. We may parametrize each
bilinear facet with vertices /., b1, b2, b3] (c.f Figure 8) as
bo(1 u)(1 v) + bu (1 v) + b2uv + 3(1 u)v.
The envelope construction of the previous section applies almost
directly to the tensorproduct construction in two variables. A point
to note is that there is more than one second difference operators
that anihilates bilinear functions. The tasks are as follows.
1. Choose a second difference A2 that anihilates bilinear func
tions.
2. Compute the bicubic basis A from the requirements
(i) A/Aj = 1 ifi = j and A/Aj = 0 otherwise,
(ii) Aj(0,0) = Aj(0,1)= Aj(1, 0) = Aj(1, 1) = 0.
3. Compute piecewise bilinear upper and lower bounds
[A, LA,]J A, LA, < [A, LA,]. (1)
4. Weigh and sum the upper and lower bounds according to the
sign of the second differences to obtain b and b+.
We choose the difference operators A2 to have the masks in Fig
ure 6, rin That is, the difference operator AK, n = n(i,j), on
the boundary is the univariate second difference along that bound
ary centered at bij; and the interior second differences are tensor
products of two univariate differences centered at bij. This choice
of A2 has the advantage of symmetry.
For a given A2, the 4 x 4 4 basis functions in A are uniquely
determined by the requirements in 2(i) and 2(ii). We express A with
the help of the ramplike functions (rj takes on the values 0, 2, 1, 0)
S(io ) io(d) i o i
(io) i(d io) otherwise.
The control points of A, are (c.f Figures 4and right)
(d2 j)r (io) j = 0,
Jo r(io) j=d2,
1d
A,(io,jo) = d2 (di io)r2(jo) i = 0,
1 d2 (jo) i 0,
io r(jo) i= di,
r d (io) rd(jo) in the interior.
Since each A, defined in this manner is linear in at least one di
rection except at (i/dij/d2), A0, = 0 for n nK0 and
A2A, = 1, as required.
2.3 Cost and refinability of function envelopes
To see that ( n1.. i,,,,. function envelopes at run time is as cheap
as computing minmax boxes we observe that [A LAJ and
[A LA] depend only on the choice of basis A (which in turn
is defined by the choice of second difference A2b) and not on the
specific function b. Therefore [A LAJ and [A LA] can be
precomputed and tabulated once and for all. The table entries are
the coefficients or vertices of the piecewise bilinear upper and lower
bound functions. Matlab routines for generating such tables for the
tensorproduct Bezier form have been posted [10], as well as the
explicit tables for degree 2 x 2 to 5 x 6.
At run time, we need only scale the table entries with the second
differences Ab and add the result either to the upper or to the lower
bound depending on the sign of Ab, that is, the calculation for a
specific polynomial is inexpensive, consisting just of a table lookup,
forming differences and an inner product.
PROOF To see that the enclosure is refinable with fast decay
ing width we observe that, for symmetric second differences, the
entries in A2b decrease to at most 1/4th their original size under
subdivision at the midpoint. Therefore the width of the envelope,
b+ b, of a Bezier polynomial b shrinks to 1/4 with each mid
point subdivision.
2.4 Interval patch enclosures
Eight bilinear enclosures are associated with every control poly
gon facet. The top and bottommost enclosures for a biquadratic
patch are shown in Figure left. The eight enclosures are all pos
sible combinations of the envelopes of each component function
x(u, v), y(u, v), z(u, v) for u, v in the domain square [i, i+1] './ x
[j,j + 1]/d2:
(x +, y+, z+),(x +, y+, ), (x +, y, +), (x +, y, z),
(x, y+,z+),(x,y+,z ),(x,y, z+), (xy ,z ).
All combinations with positive weights summing to 1 of the eight
enclosures form a shell that is a 3D enclosure of the surface piece.
The union of the shells of all patches form an enclosure of the sur
face.
A different view of the shells is that they are a bilinear combi
nation of the four point enclosures 0j, i,,,j {0, 1} of the corner
points x(i,j), y(i,j),z(i,j). A point enclosure ij is an axis
parallel box whose vertices are the 8 combinations of the corner
points of the component envelopes (the boxes displayed in Fig
ures 7, 8 and 9):
(x+(i, j), y+(i, j), z+(i, j)),
(x+ (i, j), Y+ (i, j), Z (i, j)),
(x+(i, j), y+(i, j), z+(i, j)),
etc.
That is, the function envelopes directly yield a bilinear enclosure in
interval Bezier representation.
In the following we will reserve the word 'envelope' for function
envelopes and surface envelopes and use 'enclosure' otherwise.
Surface Envelopes
1 1 4
b4
U. mew^
n
Figure 7: The nine point enclosures of a biquadratic patch and the
four pieces of the upper piecewise bilinear enclosure b+ i. I"
and the lower bilinear facets, b (top,right). Note the gaps and
overlaps. On the right, triangles of the piecewise linear upper and
lower enclosures of a biquadratic patch before extension and trim
ming. Note the duality of the crease direction.
3 Constructing surface envelopes
The bilinear interval enclosures of the previous subsection have
three shortcomings for efficient use: nonlinearity, multiplicity and
slivers. The bilinearity implies that intersections between enclo
sures result in algebraic curves of degree 4 and force iterative tech
niques for intersections with rays. Slivers arise when computing
the exact union of the shells: this requires computing and repre
senting the intersection of bilinear facets and results in trimmed
bilinear patches. Multiplicity, i.e. the choice from eight possible
bilinear function envelopes implies up to 64 nonlinear intersection
tests when intersecting two patch enclosures.
3.1 Multiplicity
To address the problem of multiplicity we observe that there is al
ways a pair of bilinear function envelopes, say (x+, y+, z) and
(x, y, z+), whose bilinear extensions enclose the other six func
tion envelopes over the region of interest. To select the extreme pair
of bilinear facets from the eight possible choices we compute the di
rection q of the bilinearfacet as the normal to the bilinear facet at
its central point:
q = (b1 o) x (b3 6o).
Let b+ be the extreme bilinear sheet in the direction of q. For each
spatial dimension i we choose, if q(i) > 0, the ith component of
the upper function envelope b+(i) and for the other sheet b(i).
If q(i) < 0, we reverse the choice as formalized in step (2b) of the
Algorithm below.
3.2 Bilinearity
A cure for the problem of bilinearity is to replace each collection
of (extreme) bilinear facet with corners bo, 61, 62, 63 as sketched in
i\
Figure 8: An anchor point with position p, the center of a point
enclosure box, and its (normal) direction n. The coefficients bi of
the bilinear facet and its direction q.
a
e+
a
Figure 9: Antipodal pairs a+ and a as interpolation points of the
two sheets e+ and e of the surface envelope enclosing eight bi
linear component enclosures with extreme pair b+ and b.
Surface Envelopes
Figure 8 by two pairs h+ and h of triangles. We have to be careful
in two respects: (1) we have to choose the diagonal correctly so as
not to intersect the bilinear facet and possibly the enclosed function
(2) we have to trim or extrapolate the triangles to avoid overlaps
and gaps that would result in many sliver pieces (c.f Figure 7).
A subtle point is that in general such an extrapolation of two
triangles h that interpolate the vertices bi of the bilinear facet inter
sects the extrapolated bilinear facet and hence is no longer a valid
onesided aproximation. Fortunately, we need not actually bound
the extension of the extreme bilinear facets b+ and b themselves
but rather, at the vertices, by faces of the point enclosures and, along
the boundary edges, as linear combinations of the edges of point en
closures at the ends, and these surface pieces are still enclosed by
two extreme triangle pairs, h+ and h, among the four possible
pairs.
To pick the two triangle pairs h+ and h we compute the crease
direction of the bilinear facet. With indicating the inner product
of two vectors
{lo (6bO+62b6b3)'q> 0.
crease02 := ( 2 q e
0, else.
The variable crease02 records the direction in which the bilinear
facet turns with respect to its direction q. If crease02 = 1 then h+
with coefficients [ho+, h+, h+, hf] is enclosed from the 'outside'
q direction by the two triangles [h+, h+, h+] and [h+, h h],
i.e. is creased along the diagonal [h+, h+], otherwise by the two
triangles [h+, h+, h+] and [h+, h+, h+]. The diagonal of h is
[h h3 ] if crease02 and [ho h ] otherwise.
3.3 Gaps, Intersections and Slivers
To address the problem of gaps, intersections and slivers we asso
ciate with each B6zier control point ba, a single point p, that is
guaranteed to lie inside all (see below) point enclosures associated
with bh. We call these points anchor points since we attach two
points on opposite sides of a beam through it. These two antipodal
points a+ and a serve as unique representer of ba on either of
the two sheets e+ and e of the surface envelope. The antipodal
points are the vertices of the surface envelope. The envelope can be
visualized as the double tentlike construction depicted in Figure 9.
Together with all its neighbors this tent encloses the curved surface.
A natural placement of the anchor point is the center of a point
enclosure. This works for anchor points corresponding to the inte
rior coefficients of a patch. However, since a B6zier coefficient on
the boundary of a patch may be shared by two or even m patches
where the patches join, the anchor point may belong to several
patches and several point enclosures of potentially different size
and with different centers, because the second differences of the
patches can differ: the point enclosure is unique only if the surface
is parametrically C2. The anchor point must lie in the intersection
of all the point enclosures.
With each anchor point we associate a (normal) direction n that
defines the line on which we place the antipodal pair. We may think
of n as an internal beam of the trusslike construction whose length
will be the width of the surface envelope at the anchor point. Specif
ically, we use the following rules to determine the position p and
direction n of an anchor point.
Construction Rules for p and n:
If the anchor point corresponds to an interior B6zier coeffi
cient, we choose p as the center of the point enclosure and n
as the normalized average of the direction q of the four bilin
ear facets meeting at the point;
If the anchor point corresponds to the boundary but not to a
corner, we choose p as the center of the two point enclosures
and n as the normalized average of the direction q of the four
bilinear facets meeting at the point;
If the anchor point corresponds to a corner, we choose p as
the B6zier coefficient and n as the normalized average of the
q of the m bilinear facets meeting at the point; if the surface
is tangent continuous, we simply choose the normal at the
corner.
3.4 Discussion
We note that all three points, nonlinearity, multiplicity and slivers,
have to be addressed simultaneously. For, given p and n of a an
chor point we can, in principle, pick out one upper and one lower
bilinear facet from the 8 candidates by extrapolating the bilinear
facets beyond their domain unit square and looking for the furthest
intercept. However, the resulting collection of bilinear facets would
have cracks, gaps and intersections (see Figure 7). The cracks and
gaps can be filled by planar sections. But that would increase the
overall number of facets of the envelope considerably compared to
the facets in the control polyhedron of the surface. Moreover, the
computation and selection of the real intersections of the ray from
the anchor point in the normal direction is a nonlinear computation
and does not have a short explicit formula.
4 Algorithm Statement
We now make the construction precise by formally stating the algo
rithm.
Precondition: we assume that the surface and hence the
Bezier patches are consistently oriented.
1. (create basis envelopes) Read in the coefficients of
the bilinear upper and lower envelopes [A,, and [A,,] of the
antidifference basis. For a bicubic surface, these are 12 2 *
16 3 floating point numbers.
2. For each B6zier patch
a (create surface component envelopes)
Compute the second differences A2b of the B6zier
coefficients. Depending on their sign use them to scale
the upper envelope [A, LA,] or the lower envelope
[A, LA,]:
b+ = Lb + [A LA] [6b + [A LA] [b6,
b = Lb + [A LA] [b] + [A LA] [bJ.
b (select the extreme bilinear facets)
For each bilinear facet of the control polyhedron label
the coefficients b0, b6, b2, b3 (see Figure 8). Compute
and store the direction q := (62 b0) x (b3 b1) of
the facet. For each spatial dimension i we set
ifq(i) > 0 then h+(i) = b(i), h (i) = b(i),
else h+(i) b(i), h(i) = b+(i).
Here h+ is the enclosure in the direction of q and h
is the enclosure in the opposite direction. (The enclo
sures h+ and h are precursors to the two sheets of the
surface envelope).
c (establish the anchor point) For each an
chor point determine p and n by the Construction Rules
of the previous subsection. Note that n is normalized to
11, = 1.
Surface Envelopes
d (establish the crease direction) For
each bilinear facet determine
crease02 (bo b2 b b3) q > 0.
crease02 = O, else.
{0, else.
Here denotes the inner product of two vectors.
e (find the furthest intersections)
For each bilinear facet for each anchor point pi,
i = 0, 1,2,3, intersect the line through pi in the
direction ni with the three triangles that include a point
with index i. That is, if crease02 = 1 then intersect
with
[h+, h, h], [h+,ht, h+] and [ho,h1,h]
else intersect with
[h+,hi, hI], and [ho, h, h2], [ho, h, h3].
The equation in A, u, v, corresponding to the triangle
hi,hj, hk is
p + An = hi + u(hj hi) + v(hk hi)
and the solution for A is
A det(hi p, hi hj,h hk)
det(n, hi hj, hi hk)
Record the maximal Avalue, A+, when intersecting
with the h+ triangles, and the minimal Avalue, A,
when intersecting with the h triangles over all bilin
ear facets attached to a anchor point. This may require
an extra pass over all patch boundaries.
3. (create antipodal pairs) For each anchor point
compute the antipodal pair
p+ A+n, p + An.
4. (form the envelope triangles) For each bilinear
facet connect the pi + Atni according to crease02 to form
two triangles e+ and e as in (2e) above and connect the
Pi + AT ni with the opposite crease.
4.1 Analysis of the Algorithm
We show that the cost of the algorithm is linear in the number of
anchor points and therefore in the number of bilinear facets and an
tipodal points. We denote vector additions or subtractions as 'adds'.
For a polynomial patches of constant bidegree d the cost of (1) is
constant.
The cost of(2a) is d2 4 + 3 adds per anchor point.
The cost of(2b) is one crossproduct per bilinear facet.
The cost of (2c) is several comparisons, 7 adds and one nor
malization per anchor point.
The cost of(2d) is three additions and one inner product.
The cost of(2e) is 3m cross products, 6m inner products and
3m adds for each anchor point, where m is the number of
neighbors of the anchor point.
The cost of (3) and (4) is linear in the number of anchor points.
The calculations are robust if, det(n, ei ej, ei ek) >> 0
in the determination of the intersections. Since n is determined as
the average of the normals of the surrounding bilinear facet normals
it is unlikely to fall into the planes determined by its corners, and
nearcollinearity of ei ej and ei ek implies that already the
original surface parametrization is close to singular.
Figure 10: The shell of the envelope (blue and yellow) is hardly
distinguishable from the shape of the enclosed surface, even in a
closeup of one patch (bottom).
5 Examples and measurements
There are two challenges when trying to select figures to convey
an idea of the quality of the surface envelopes. First, there is the
question which type of surface is sufficiently challenging to the al
gorithm. Because of the central role of second differences surfaces
with a high curvature fluctuation should have the widest envelopes
however such surfaces would not be considered 'fair' by design
ers. Second, the envelopes turned out to be just too good to see very
much the shells are so thin that from afar they are indistinguish
able from a triangulated version of the true surface (Figure 10 (top,
middle). Only zooming in and slicing the surface as in Figure 10)
(bottom) and in Figure 1 gives a glimpse of the surface sandwich.
Surface envelopes have a remarkably small width that shrinks
like O(h2) under uniform subdivision of the spline patches. The
construction is simple and supported by a fullfledged theory that
provides guaranteed error bounds and quadratic reduction of the
width under uniform refinement of the B6zier (or bspline) repre
sentation of the surface. costbenefit comparison with various vari
ants of bounding boxes.
6 Extensions to other surface represen
tations
Since function bounds can be generalized to to any refinable rep
resentation, surface envelopes can be computed for other surface
representations.
In particular, for CatmullClark subdivision surfaces, we can
simply use a change of basis. In the regular, tensorproduct part
of the mesh, the same piecewise linear bounding functions A, for
each quadrialteral mesh facet can be used and we need only scale
the symmetric difference operator for bicubic B6zier patches by 36
since A>c = 36A6b. At the extraordinary nodes, where more or
less than four quadrilaterals meet a combination of refinement and
the generic bounding box construction is used to cap the envelope.
Surface Envelopes
Acknowledgments
Figures 4, 5 were generated using the software at [10]. Figure 6 is
taken from [11].
References
[1] R. C. Buck. Applications of duality in approximation theory.
In Approximation of Functions (Proc. Sympos. General Mo
tors Res. Lab., 1964), pages 2742. Elsevier Publ. Co., Ams
terdam, 1965.
[2] Jonathan Cohen, Amitabh Varshney, Dinesh Manocha, Greg
Turk, Hans Weber, Pankaj Agarwal, Frederick P. Brooks,
Jr., and William Wright. Simplification envelopes. In
Holly Rushmeier, editor, SIGGRAPH 96 Conference Pro
ceedings, Annual Conference Series, pages 119128. ACM
SIGGRAPH, Addison Wesley, August 1996. held in New Or
leans, Louisiana, 0409 August 1996.
[3] R. DeVore. Onesided approximation of functions. J of Ap
proximation Theory, 1:1125, 1968.
[4] Stefan Gottschalk, Ming Lin, and Dinesh Manocha. OBB
Tree: A hierarchical structure for rapid interference detection.
In Proceedings of the ACM Conference on Computer Graph
ics, pages 171180, New York, August 49 1996. ACM.
[5] ChunYi Hu, Takashi Maekawa, Evan C. Sherbrooke, and
Nicholas M. Patrikalakis. Robust interval algorithm for
curve intersections. Computeraided Design, 28(67):495
506, 1996.
[6] ChunYi Hu, Nicholas M. Patrikalakis, and Xiuzi Ye. Robust
interval solid modelling part I: representations. Computer
aidedDesign, 28(10):807817, 1996.
[7] ChunYi Hu, Nicholas M. Patrikalakis, and Xuizi Ye. Ro
bust interval solid modelling part II: boundary evaluation.
ComputeraidedDesign, 28(10):819830, 1996.
[8] D. Lutterkort and J. Peters. Envelopes for tensor product
polynomials. Computer Aided Geometric Design, xx(xx), xx
2000. submitted.
[9] D. Lutterkort and J. Peters. Tight linear bounds on the dis
tance between a spline and its Bspline control polygon. Nu
merische Mathematik, xx(xx):014, xx 200x. in press.
[10] David Lutterkort. Matlab software for bivariate spline
envelopes
http://www.cise.ufl.edu/research/SurfLab/papers/00tpenv.tar.gz.
[11] David Lutterkort. Envelopes for Nonlinear Geometry. PhD
thesis, Purdue University, May 2000.
[12] D. Nairn, J. Peters, and D. Lutterkort. Sharp, quantitative
bounds on the distance between a polynomial piece and its
Bezier control polygon. Computer Aided Geometric Design,
16(7):613633, Aug 1999.
[13] Allan M. Pinkus. On L1approximation. Cambridge Univer
sity Press, Cambridge, 1989.
[14] P.V Sander, Xianfeng Gu, S.J. Gortler, H. Hoppe, and J. Sny
der. Silhouette clipping. Computer Graphics, 34(Annual Con
ference Series):327334, 2000.
[15] Robert Schaback. Best bounds on the approximation of poly
nomials and splines by their control structure. Comput. Aided
Geom. Design, 17(6):579589, 2000.
[16] T. W. Sederberg and R. T. Farouki. Approximation by interval
bezier curves. IEEE Computer Graphics and Applications,
12(5):8795, September 1992.
[17] S. T. Tuohy, T. Maekawa, G. Shen, and N. M. Patrikalakis.
Approximation of measured data with interval Bsplines.
ComputeraidedDesign, 29(11):791799, 1997.
