Group Title: Department of Computer and Information Science and Engineering Technical Reports
Title: Surface envelopes
Full Citation
Permanent Link:
 Material Information
Title: Surface envelopes
Series Title: Department of Computer and Information Science and Engineering Technical Report ; 01-003
Physical Description: Book
Language: English
Creator: Peters, Jorg
Publisher: Department of Computer and Information Science and Engineering, University of Florida
Place of Publication: Gainesville, Fla.
Copyright Date: 2001
 Record Information
Bibliographic ID: UF00095470
Volume ID: VID00001
Source Institution: University of Florida
Holding Location: University of Florida
Rights Management: All rights reserved by the source institution and holding location.


This item has the following downloads:

2001316 ( PDF )

Full Text

CISE-TR-01-003: 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 bi-cubic spline complex is earthtone red.)


Surface envelopes are tight, two-sided 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 tensor-product B6zier patches.
The main cost of the hull computation are 12 transversal line-plane
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 one-time 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, 2-sided 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 CCR-9457806

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 line-plane 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 bi-cubic B6zier

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 two-sided 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 box-valued 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 B-spline 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 two-sided 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 b-splines. Surface envelopes com-
plement this work by offering tighter two-sided bounds.
Approximation theory has long considered the closely related
problems of one-sided approximation and two-sided approxima-
tion. Based on Buck's seminal "Applications of Duality in Approx-
imation Theory" [1], DeVore [3] established the close relation of
one-sided approximation to quadrature formulas with nonnegative
coefficients and gives a Remez-type algorithm for determining a
(unique) solution. Thirty more years have seen a rich body of liter-
ature concerning one-sided 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 one-sided 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


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 tensor-product case.

2.1 An example in one variable

Consider a cubic polynomial in B6zier form

b(t) := B b = bBi(t),

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 tensor-product 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
bi-cubic 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, bi-1j
and bij-1 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 1-2

-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 tensor-product 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-
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 ramp-like 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,
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 min-max 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
tensor-product 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-
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)),


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


U. mew^


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 bi-quadratic 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


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.




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
one-sided 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
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+62-b6-b3)'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 tent-like 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 truss-like 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

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-
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
[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 A-value, A+, when intersecting
with the h+ triangles, and the minimal A-value, 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 bi-degree d the cost of (1) is
The cost of(2a) is d2 4 + 3 adds per anchor point.
The cost of(2b) is one cross-product 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
near-collinearity 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
close-up 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 full-fledged theory that
provides guaranteed error bounds and quadratic reduction of the
width under uniform refinement of the B6zier (or b-spline) repre-
sentation of the surface. cost-benefit comparison with various vari-
ants of bounding boxes.

6 Extensions to other surface represen-

Since function bounds can be generalized to to any refinable rep-
resentation, surface envelopes can be computed for other surface
In particular, for Catmull-Clark subdivision surfaces, we can
simply use a change of basis. In the regular, tensor-product 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


Figures 4, 5 were generated using the software at [10]. Figure 6 is
taken from [11].


[1] R. C. Buck. Applications of duality in approximation theory.
In Approximation of Functions (Proc. Sympos. General Mo-
tors Res. Lab., 1964), pages 27-42. 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 119-128. ACM
SIGGRAPH, Addison Wesley, August 1996. held in New Or-
leans, Louisiana, 04-09 August 1996.

[3] R. DeVore. One-sided approximation of functions. J of Ap-
proximation Theory, 1:11-25, 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 171-180, New York, August 4-9 1996. ACM.

[5] Chun-Yi Hu, Takashi Maekawa, Evan C. Sherbrooke, and
Nicholas M. Patrikalakis. Robust interval algorithm for
curve intersections. Computer-aided Design, 28(6-7):495
506, 1996.

[6] Chun-Yi Hu, Nicholas M. Patrikalakis, and Xiuzi Ye. Robust
interval solid modelling part I: representations. Computer-
aidedDesign, 28(10):807-817, 1996.

[7] Chun-Yi Hu, Nicholas M. Patrikalakis, and Xuizi Ye. Ro-
bust interval solid modelling part II: boundary evaluation.
Computer-aidedDesign, 28(10):819-830, 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 B-spline control polygon. Nu-
merische Mathematik, xx(xx):0-14, xx 200x. in press.

[10] David Lutterkort. Matlab software for bivariate spline

[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):613-633, Aug 1999.

[13] Allan M. Pinkus. On L1-approximation. 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):327-334, 2000.

[15] Robert Schaback. Best bounds on the approximation of poly-
nomials and splines by their control structure. Comput. Aided
Geom. Design, 17(6):579-589, 2000.

[16] T. W. Sederberg and R. T. Farouki. Approximation by interval
bezier curves. IEEE Computer Graphics and Applications,
12(5):87-95, September 1992.

[17] S. T. Tuohy, T. Maekawa, G. Shen, and N. M. Patrikalakis.
Approximation of measured data with interval B-splines.
Computer-aidedDesign, 29(11):791-799, 1997.

University of Florida Home Page
© 2004 - 2010 University of Florida George A. Smathers Libraries.
All rights reserved.

Acceptable Use, Copyright, and Disclaimer Statement
Last updated October 10, 2010 - - mvs