


























Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
The extension of the lane-riesenfeld knot insertion procedure to uniform tensor product b-spline surfaces. It covers the concept of subdivision in the s and t parameter directions, the generation of control points through averaging and splitting, and the use of stencils for subdivision. The document also provides schematics and formulas for edge, vertex, and face stencils.
Typology: Study notes
1 / 34
This page cannot be seen from the preview
Don't miss anything!



























Lecture 30: Subdivision Surfaces
1. Motivation
Subdivision algorithms are similar to fractal procedures. In the standard fractal algorithm, we
begin with a compact set
0
and iterate over a collection of contractive transformations W to
generate a sequence of compact sets
n + 1
n
) that converge in the limit to a fractal shape
∞
= Lim n →∞
n
. In subdivision procedures, we start with a set
0
(usually either a control
polygon or a control polyhedron, or as we shall see shortly a quadrilateral or triangular mesh) and
recursively apply a set of rules S to generate a sequence of sets
n + 1
n
) of the same general
type as
0
that converge in the limit to a smooth curve or surface
∞
= Lim n →∞
n
Although one of the themes of Lecture 29 is that subdivision algorithms are essentially fractal
procedures, nevertheless the goals of subdivision algorithms and fractal procedures are
fundamentally different. The goal of fractal procedures is to construct extraordinary shapes,
unconventional forms from conventional origins; the goal of subdivision algorithms is to construct
smooth shapes, differentiable functions from discrete data. The de Casteljau subdivision algorithm
for Bezier curves and surfaces and the Lane-Riesenfeld algorithm for uniform B-splines are
examples of subdivision procedures that start with coarse control polygons or polyhedra and build
refined control polygons and polyhedra that converge in the limit to smooth curves and surfaces.
We are interested in subdivision algorithms for four basic reasons:
i. Subdivision algorithms replace complicated formulas with simple procedures. Thus
subdivision is more in the spirit of modern computer science than classical mathematics.
ii. Subdivision algorithms are easy to understand and simple to implement.
iii. Subdivision algorithms can generate a large class of smooth functions, not just
polynomials and piecewise polynomials.
iv. Subdivision algorithms on polyhedral meshes can produce shapes with arbitrary
topology, unlike tensor product schemes which can generate only surfaces that are
topologically equivalent to a rectangle, or by identifying edges to a cylinder or a torus.
Thus subdivision provides a simple approach to generating a wide variety of smooth shapes.
We are going to focus on subdivision algorithms for freeform surfaces. Most of this chapter
is based on Chapters 2 and 7 of Subdivision Methods for Geometric Design: A Constructive
Approach , by Warren and Weimer. We shall devote our attention here to the algorithmic details of
different subdivision paradigms. Readers interested in proofs of convergence, differentiability, and
other properties of these subdivision procedures should consult the book by Warren and Weimer.
2. Box Splines
Box spline surfaces are generalizations of uniform tensor product B-spline surfaces. The
fundamental step in the Lane-Riesenfeld subdivision algorithm for uniform tensor product B-spline
surfaces is averaging adjacent control points along canonical directions in a rectangular array. Box
spline surfaces are generated by subdivision procedures that allow averaging along arbitrary
directions in a rectangular array. To understand how this works in practice, we begin with a review
of the Lane-Riesenfeld algorithm for uniform B-splines.
2.1 Split and Average. Recall that the Lane-Riesenfeld algorithm (Chapter 28, Section 4.1) for
uniform B-spline curves consists of two basic steps: splitting and averaging (see Figure 1).
0
0
1
1
2
0
1
2
0
1
1
2
2
L
L
M
Figure 1: The Lane-Riesenfeld algorithm for uniform B-spline curves. At the base of the diagram
each control point is split into a pair of points. Adjacent points are then averaged and this averaging
step is repeated n times, where n is the degree of the curve. The new control points for the spline
with one new knot inserted midway between each consecutive pair of the original knots emerge at
the top of the diagram. Iterating this procedure generates a sequence of control polygons that
converge in the limit to the B-spline curve for the original control points.
To extend the Lane-Riesenfeld knot insertion procedure to uniform tensor product B-spline
surfaces
P ( s , t ), we need to insert knots in both the s and t parameter directions. Consider a
rectangular array of control points
ij
}. To insert knots midway between each pair of consecutive
knots, we first split and average in the s -direction, and then split and average the result of this
computation in the t -direction (see Figures 2-4). Alternatively, instead of initially splitting each
control point into two control points, we can start by splitting each control point into four control
points. We can then average consecutively in the s and t directions; now there is no need to split
the output of the averages in the s -direction before averaging in the t -direction (see Figure 5). The
result of both approaches is the same control polyhedron, and it makes no difference whether we
average first in the s -direction and then in the t -direction or first in the t -direction and then in the s -
direction; the result is always the same (see Exercise 1a).
00
00
10
10
10
20
20
00
01
10
11
20
21
02
02
12
12
12
22
22
01
01
11
11
11
21
21
11
12
00
01
10
11
10
11
20
21
01
02
01
02
11
12
11
12
21
22
21
22
Average in the t-direction
Figure 4: Subdivision for uniform tensor product B-spline surfaces. Final step: Average the
points in Figure 3 in the t -direction. Here we illustrate the bilinear case. Higher bidegree surfaces
can be generated by taking additional averages.
€
P 00
€
P 00
€
P 10
10
20
€
P 20
€
P 00
€
P 00
€
P 10
€
P 10
€
P 20
€
P 20
€
P 01
01
11
€
P 11
€
P 21
21
€
P 01
€
P 01
€
P 11
€
P 11
€
P 21
€
P 21
€
P 02
02
€
P 02
€
P 02
€
P 12
€
P 12
€
P 12
12
€
P 22
€
P 22
€
P 22
€
P 22
€
€
00
00
10
€
P 10
10
20
€
P 20
01
01
11
€
P 11
11
21
€
P 21
€
P 02
02
12
12
12
22
22
00
00
10
€
P 10
10
20
€
P 20
01
01
11
€
P 11
11
21
€
P 21
€
P 02
02
12
€
P 12
12
22
€
P 22
(a) Split (b) Average
Figure 5: Subdivision for uniform tensor product B-spline surfaces -- alternative approach. First
(a) split each point into four points and then (b) average in the s -direction. The resulting points are
the same as the points in Figure 3. We can now average the output in the t -direction to get the
points in Figure 4. No additional splitting is required.
2.2 A Subdivision Procedure for Box Spline Surfaces. Box spline surfaces are built by a
generalization of the split and average approach to subdivision for uniform tensor product B-spline
surfaces. The only difference is that for box splines, in addition to averaging along canonical
directions in the rectangular array of control points, we also allow averaging along arbitrary
directions in the rectangular array.
Thus to define a box spline surface, in addition to a rectangular array of control points
ij
in 3-space, we need to specify a collection of vectors
V = { v = ( v 1
, v 2
)} in the plane. The only
restriction on the collection V is that the components
v 1
, v 2
of each of the vectors v must be integers,
and V must contain at least one copy of the vectors
( 1 ,0) and
(0,1). Note that vectors v in the
collection V can appear multiple times.
The subdivision algorithm for a box spline surface begins by splitting each control point into
four control points, just as in the subdivision algorithm for uniform tensor product B-spline
surfaces (see Figure 5, left). We then remove one copy of the vectors
( 1 ,0) and
(0,1) from the
collection V. Thus the initial copies of
( 1 ,0) and
(0,1) correspond to quadrupling the control points.
Now we make one averaging pass for each remaining vector
v = ( v 1
, v 2
) in the collection V by
computing the averages of v -adjacent points -- that is, by computing all averages of the form:
i , j
i , j
i + v 1 , j + v 2
The output of one averaging pass is used as input to the next averaging pass. The order in which
we compute these averages does not matter, since averaging v -adjacent points and then averaging w -
adjacent points is equivalent to averaging w -adjacent points and then averaging v -adjacent points
(see Exercise 1b).
Iterating this procedure generates in the limit piecewise polynomial surfaces of degree
d − 2 ,
where d is the number of vectors, counting multiplicities, in the collection V. Moreover these
surfaces have
α − 2 continuous derivatives, where
α is the size of the smallest set
A ⊂ V such that
the vectors in
V − A are all multiples of a single vector (see Warren and Weimer, Chapter 2).
Example 2.1: Uniform Tensor Product B-Spline Surfaces
Let V consist of the vector
( 1 ,0) repeated m times and the vector
(0,1) repeated n times. The initial
copies of
( 1 ,0) and
(0,1) correspond to quadrupling the control points. Thus, repeating the vector
( 1 ,0) m times corresponds to taking
m − 1 averages in the s -direction, and repeating the vector
n times corresponds to taking
n − 1 averages in the t -direction. Therefore the corresponding box
spline surface is a uniform tensor product B-spline surface of bidegree
( m − 1 , n − 1 ). The total
degree of this surface is
d = ( m − 1 ) + ( n − 1 ) = m + n − 2 and this surface has
α − 2 continuous
derivatives, where
α = min( m , n ).
Figure 8: A three direction piecewise linear box spline surface. The initial control polygon is on
the left; the first two levels of subdivision are illustrated in the middle and on the right.
Figure 9: A three direction quartic box spline surface. The initial control polygon is in the upper
left. The first five levels of subdivision are illustrated from left to right and from top to bottom.
Figure 10: The
1 biquadratic B-spline (center) and the
2 three direction quartic box spline
(right) for the same control polygon (left). Both surfaces employ four rounds of averaging for each
level of subdivision.
3. Quadrilateral Meshes
A quadrilateral mesh is a collection of quadrilaterals, where each pair of quadrilaterals are
either disjoint or share a common edge and each edge belongs to at most two quadrilaterals. One
way to form a quadrilateral mesh is to start from a rectangular array of control points. Joining
points with adjacent indices generates a regular quadrilateral mesh, a mesh where each interior
vertex has four adjacent faces, edges, and vertices (see Figures 8, 9, 10). Tensor product B-splines
are built from rectangular arrays of control points. Therefore uniform tensor product B-splines are
an example of surfaces generated by subdivision starting from a quadrilateral mesh.
The goal of this section is to construct smooth surfaces starting from quadrilateral meshes of
arbitrary topology. Unlike tensor product or box spline schemes, the vertices of an arbitrary
quadrilateral mesh are not constrained to form a rectangular array; all that is required is that the
vertices can be joined into non-overlapping quadrilateral faces, where each pair of faces are either
disjoint or share a common edge and each edge belongs to at most two faces. For example, the
faces of a cube form a quadrilateral mesh, even though the vertices of the cube do not form a regular
rectangular array, since in the cube each vertex has only three adjacent faces (see Figure 14). Two
additional examples of quadrilateral meshes that are not generated by rectangular arrays of points
are illustrated in Figure 13(a) and Figure 15.
Below we shall provide two methods for constructing smooth surfaces from arbitrary
quadrilateral meshes via subdivision: centroid averaging and stencils.
3.1 Centroid Averaging. Centroid averaging is an extension of the Lane-Riesenfeld subdivision
algorithm for uniform tensor product bicubic B-spline surfaces from rectangular arrays of control
points to quadrilateral meshes with arbitrary topology. Therefore we begin by revisiting the Lane-
Riesenfeld algorithm for bicubic B-splines.
3.1.1 Uniform Bicubic B-Spline Surfaces. To simplify our discussion, let us start with uniform
B-spline curves. For cubic B-splines the Lane-Riesenfeld algorithm can be separated into two
distinct stages: topology (connectivity) and geometry (shape). In the topological stage,
corresponding to the first, piecewise linear step of the Lane-Riesenfeld algorithm, we introduce new
control points at the midpoints of the original control polygon and we change the connectivity of the
control polygon by adding edges joining these new points to adjacent control points -- see Figure 1
and Figure 11(b). Notice, however, that in the topological phase we do not alter the shape of the
control polygon. In the geometric stage,, we reposition the control points by taking two successive
averages. Notice that computing two successive averages is equivalent to taking the midpoints of
the midpoints of these control points -- see Figure 11(c). Thus in the geometric phase we change
the shape of the control polygon, but we do not alter the connectivity of the vertices and edges.
the control point (see Figure 12(c)). Thus in the geometric stage we change the shape of the control
polyhedron, but we do not alter the connectivity of the vertices, edges, and faces.
(a) Original Control Points (b) New Topology (c) New Geometry
Figure 12: One level of the Lane-Riesenfeld algorithm for bicubic B-spline surfaces. In (a) we
illustrate one face of the control polyhedron. In the topological stage ( b ), new control points
(yellow) are inserted at the midpoints of the edges and at the centroids of the faces of the control
polyhedron; each edge is then split into two edges and each face is split into four faces. In the
geometric stage ( c ), each control point -- yellow or black -- is repositioned to the centroid (blue) of
the centroids (green) of the faces adjacent to the control point. Thus after the geometric stage, each
black and each yellow control point is repositioned based on the location of the green centroids of
adjacent faces, but the topology of the polyhedron is not changed. The green centroids are used
only to reposition vertices and are not themselves vertices of the refined polyhedron.
3.1.2 Arbitrary Quadrilateral Meshes. As with bicubic B-splines, there are two main phases to
centroid averaging for arbitrary quadrilateral meshes: topology (connectivity) and geometry (shape)
In the topological phase we refine the mesh by introducing new vertices, edges, and faces, but we do
not alter the underlying shape of the mesh. In the geometric phase we reposition the vertices to
change the geometry of the mesh, but we do not alter the underlying topology of the mesh; rather
we maintain the connectivity of the mesh -- the edges and faces -- introduced during the topological
phase.
To refine the topology of the mesh, we proceed exactly as we did for bicubic B-splines: we
keep the original vertices and we insert new edge vertices at the midpoints of the edges and new
face vertices at the centroids of the faces of the quadrilateral mesh. Each edge is then split into two
edges and each face is split into four faces by connecting the centroid of the face to the midpoints
of the edges surrounding the face (see Figure 13(b)).
To alter the geometry of the mesh, we reposition each vertex of the mesh to the centroid of the
centroids of the adjacent faces. The only difference between subdivision for bicubic B-splines and
subdivision for arbitrary quadrilateral meshes is that for arbitrary quadrilateral meshes there need
not be four faces adjacent to each interior vertex. For example, in the cube there are only three faces
adjacent to each of the vertices. An interior vertex of a quadrilateral mesh where the number of
adjacent faces, edges, or vertices is not equal to four is called an extraordinary vertex, and the
number of faces, edges, or vertices adjacent to a vertex is called the valence of the vertex. Thus in
the geometric phase, each vertex Q of the mesh is repositioned by the formula
n
k
k = 1
n
where
1
n
are the centroids of the faces adjacent to Q and n is the valence of Q.
After several levels of subdivision, most of the interior vertices of a quadrilateral mesh are
ordinary vertices and the extraordinary vertices become more and more isolated topologically from
one another. These features emerge because during the topological phase, each face is subdivided
into four faces by edges joining the centroid of the face to the midpoints of the surrounding edges.
Thus the new edge vertices and the new face vertices all have valence four (see Figure 13(b)), so all
the new vertices introduced by subdivision are ordinary vertices. Also the valence of each of the
original vertices is unchanged, since the number of faces surrounding a vertex does not change
during subdivision. Hence during subdivision, ordinary vertices remain ordinary vertices and
extraordinary vertices remain extraordinary vertices with the same valence (see Figure 13(b)). Since
all the new vertices have valence four, locally the new quadrilateral mesh looks exactly like a
rectangular array of control points; only vertices from the original mesh that did not have valence
four do not have four adjacent faces. Therefore, just like uniform bicubic B-splines, the surfaces
generated in the limit by iterating centroid averaging have two continuous derivatives everywhere;
the only exceptions are at the limits of the extraordinary vertices, where these surfaces are
guaranteed to have only one continuous derivative (see Warren and Weimer, Chapter 8).
(a) Extraordinary Vertex (b) New Topology (c) New Geometry
Figure 13: One level of centroid averaging. In (a) we illustrate six faces of a quadrilateral mesh
surrounding an extraordinary vertex. In the topological stage ( b ), new vertices are inserted at the
midpoints (yellow) of the edges and at the centroids (green) of the faces, and the centroid of each
face is joined to the midpoints of the surrounding edges, splitting each face into four new faces In
the geometric stage ( c ), each vertex -- yellow, green, or black -- is repositioned to the centroid of the
centroids (blue) of the faces adjacent to the vertex, but the topology of the mesh is not changed.
Notice that the extraordinary vertex at the center remains an extraordinary vertex and is repositioned
as the centroid of six adjacent centroids. All the other vertices -- black, yellow, and green -- are
ordinary vertices and their new location is computed as the centroid of four blue points, just as in
the Lane-Riesenfeld algorithm for bicubic B-splines.
3.2.1 Stencils for Uniform B-Splines. Since centroid averaging is an extension of the Lane-
Riesenfeld subdivision algorithm for tensor product bicubic B-spline surfaces from rectangular
arrays of control points to quadrilateral meshes with arbitrary topology, we shall adapt stencils for
bicubic B-spline surfaces to quadrilateral meshes of arbitrary topology. As usual, to simplify
matters, we will begin our study of stencils with stencils for cubic B-spline curves.
The Lane-Riesenfeld algorithm for cubic B-spline curves is illustrated in Figure 16 (see too
Chapter 28, Section 4.1).
€
3 P 0
4
0
1
€
P 1
2
€
P 2
2
€
P 0
1
€
P 2
3
0
1
1
2
1
2
2
3
2
3
€
P 0
€
P 1
€
P 1
€
P 2
€
P 2
€
P 3
€
P 3
€
4 P 0
8
0
1
2
€
4 P 1
8
€
P 1
6 P 2
P 3
8
2
3
€
P 0
€
L
L
L
€
L
Figure 16: The Lane-Riesenfeld algorithm for cubic B-spline curves. At the bottom of the
diagram each control point is split into a pair of points. Adjacent points are then averaged and this
averaging step is repeated three times. The new control points for the cubic spline with one new
knot inserted midway between each consecutive pair of the original knots emerge at the top of the
diagram.
Notice that there are essentially two distinct explicit formulas for the new control points that emerge
at the top of this diagram:
i +1/
i
i + 1
i + 1
i
i + 1
i + 2
The stencils for this algorithm are simply the coefficients
(^1 /^ 2,^1 /^2 ) and
(^1 /^ 8,^6 /^8 ,^1 /^8 ) that appear
in these two formulas.
To understand the geometry behind these two formulas, recall from Figure 11 that after one
level of subdivision topologically the new control polygon for a cubic B-spline curve consists of
two types of control points: edge points and vertex points. Equation (3.1) repositions edge points;
Equation (3.2) repositions vertex points. These stencils can be illustrated schematically by the
diagrams in Figure 17.
€
1
2
€
1
2
€
◊
€
1
8
€
1
8
€
6
8
€
◊
(a) edge stencil (b) vertex stencil
Figure 17: Stencils for subdivision of cubic B-spline curves: (a) the edge stencil and (b) the
vertex stencil. The position of the new control point (clear diamond) is computed by multiplying
the original control points (black discs) by the associated fractions and summing the results.
There is a similar interpretation using stencils of the Lane-Riesenfeld subdivision algorithm for
bicubic B-spline surfaces. Topologically there are now three kinds of points: face points, edge
points, and vertex points. To find the stencils for these points, we need to find explicit formulas for
the control points of the new control polyhedron after one level of subdivision. We can calculate
these points by taking two rounds of centroid averaging of the control points in Figure 4. The
results are presented in Figure 18.
L
M
L
L
00
01
10
11
00
01
10
11
10
11
20
21
00
01
10
11
00
01
10
11
10
11
20
21
01
02
11
12
01
02
11
12
11
12
21
22
(a) First round of centroid averaging
3.2.2 Stencils for Extraordinary Vertices. To extend stencils from uniform bicubic B-spline
surfaces to subdivision surfaces built from arbitrary quadrilateral meshes, we need not alter the face
stencil or the edge stencil; all we need to do is to generalize the vertex stencil to extraordinary
vertices. This vertex stencil should be affine invariant (the fractions should sum to one), symmetric
with respect to the surrounding vertices, and reduce to the vertex stencil for bicubic B-spline
surfaces for ordinary vertices with valence four. Also, we want the stencil to generate smooth
surfaces -- that is, surfaces with at least one continuous derivative -- at the limits of the
extraordinary vertices. Two such stencils are provided in Figure 20; both satisfy all of our
constraints, but the Catmull-Clark stencil tends to generate more rounded surfaces.
€
6
16 n
€
1
16 n
€
1
16 n
€
1
16 n
€
1
16 n
€
1
16 n
€
1
16 n
€
6
16 n
€
6
16 n
€
6
16 n €
6
16 n
€
6
16 n
€
9
16
€
◊
€
1
4 n
2
€
3
2 n
2
€
1 −
7
4 n
€
1
4 n
2
€
1
4 n
2
€
1
4 n
2
€
1
4 n
2
€
1
4 n
2
€
3
2 n
2
€
3
2 n
2
€
3
2 n
2
€
3
2 n
2
€
3
2 n
2
€
◊
(a) simple vertex stencil (b) Catmull-Clark stencil
Figure 20: Two vertex stencils for extraordinary vertices with valence n : (a) a simple vertex
stencil and (b) the Catmull-Clark stencil. Notice that both stencils reduce to the vertex stencil for
bicubic B-splines at ordinary vertices, i.e. vertices where the valence
n = 4 (see Figure 19(c)).
4. Triangular Meshes
A triangular mesh is a collection of triangles, where each pair of triangles are either disjoint or
share a common edge and each edge belongs to at most two triangles. Thus a triangular mesh is
much like a quadrilateral mesh, except that the faces are triangles instead of quadrilaterals. A
rectangular array of control points generates a regular quadrilateral mesh. Splitting each face in this
quadrilateral mesh along a fixed diagonal direction generates a regular triangular mesh, a mesh
where each interior vertex is adjacent to six vertices, edges, and faces. The control points for the
three direction box splines form a triangular mesh because the vector
( 1 ,1) splits each quadrilateral
in the mesh generated by the control points into a pair of triangles. Therefore three direction box
splines are examples of surfaces generated by subdivision starting from a triangular mesh.
Triangular meshes are quite common in Geometric Modeling, perhaps even more common
than quadrilateral meshes. Unlike the control points for three direction box splines, the vertices of
an arbitrary triangular mesh are not constrained to be generated from a rectangular array; all that is
required is that the vertices can be joined into non-overlapping triangular faces, where each pair of
faces are either disjoint or share a common edge and each edge belongs to at most two faces. For
example, the faces of an octahedron form a triangular mesh, even though the vertices of the
octahedron do not form a regular mesh, since in the octahedron each vertex has only four adjacent
faces (see Figure 24). Two additional examples of triangular meshes that are not regular are
illustrated in Figure 23(a) and Figure 25.
The goal of this section is to construct smooth surfaces via subdivision starting from triangular
meshes of arbitrary topology. We shall explore the same two paradigms for subdivision of
triangular meshes that we investigated for quadrilateral meshes: centroid averaging and stencils.
4.1 Centroid Averaging for Triangular Meshes. Three direction quartic box spline surfaces
play the same basic role for subdivision algorithms of triangular meshes that uniform bicubic tensor
product B-spline surfaces play for subdivision algorithms of quadrilateral meshes. Therefore we
shall begin our investigation of subdivision algorithms for triangular meshes by taking another look
at the subdivision algorithm for three direction quartic box splines.
4.1.1 Three Direction Quartic Box Splines. Much like the subdivision algorithm for uniform
bicubic B-spline surfaces, the subdivision algorithm for three direction quartic box spline surfaces
can be separated into two distinct stages: topology and geometry. In Section 2, we built the
subdivision algorithm for one level of the three direction quartic box spline by averaging the control
points generated by one level of the subdivision algorithm for the three direction piecewise linear
box spline along the vectors
( 1 ,0),(0, 1 ), ( 1 , 1 ). Computing the control points for the three direction
piecewise linear box spline is equivalent to changing the topology of the mesh; averaging these
control points along the vectors
( 1 ,0),(0, 1 ), ( 1 , 1 ) is equivalent to altering the geometry of the mesh.
In the topological stage, we keep the original control points and we insert new control points at
the midpoints of the edges of the triangular mesh (see Figure 6 and Figure 22(b)). Thus we alter
the connectivity of the mesh, adding new edges and faces by connecting the midpoints of adjacent
edges. Each edge is split into two edges and each face is split into four faces, but as usual in the
topological phase we do not alter the shape of the mesh.
In the geometric stage, we reposition these control points by averaging the control points along
the vectors
( 1 ,0),(0, 1 ), ( 1 , 1 ). Thus in the geometric stage we change the shape of the mesh, but we
do not alter the connectivity of the vertices, edges, and faces (see Figure 22(c)).
There is, however, another somewhat easier way to reposition the vertices. We can generate the
same points by applying the stencil in Figure 21 to the control points for the three direction
piecewise linear box spline. This result is easy to verify: simply overlay the stencil in Figure 21 on
(a) Original Control Points (b) New Topology (c) New Geometry
Figure 22: One level of subdivision for the three direction quartic box spline. In (a) we illustrate
two faces of the original mesh. In the topological stage ( b ), new control points (yellow) are inserted
at the midpoints of the edges, and new edges and faces are added to the mesh by connecting vertices
along adjacent edges. Thus each edge is split into two edges and each face is split into four faces.
In the geometric stage ( c ), each control point -- yellow or black -- is repositioned to the centroid
(blue) of the weighted centroids (green) of the faces adjacent to the control point, but the topology
of the mesh is not changed. Note that since the green centroids are weighted centroids, we cannot
reuse the same centroids to reposition different control points, rather we must recompute these
centroids for each vertex. Compare to Figure 12 for bicubic B-splines.
4.1.2 Arbitrary Triangular Meshes. As with three direction quartic box splines, there are two
main phases to centroid averaging for arbitrary triangular meshes: topology and geometry.
To refine the topology of the mesh, we proceed exactly as we did for three direction quartic
box splines: we keep the original vertices and we insert new edge vertices at the midpoints of the
edges. Thus each edge is split into two edges. We also introduce new edges to connect the
midpoints of adjacent edges and new faces surrounded by these new edges, splitting each of the
original faces into four faces (see Figure 23(b)).
To alter the geometry of the mesh, we reposition each vertex of the mesh to the centroid of the
weighted centroids of the adjacent faces. The only difference between subdivision for three
direction quartic box splines and subdivision for arbitrary triangular meshes is that for arbitrary
triangular meshes there need not be six faces adjacent to each interior vertex. For example, in the
octahedron there are only four faces adjacent to each of the vertices. An interior vertex of a
triangular mesh where the number of adjacent faces, edges, or vertices is not equal to six is called an
extraordinary vertex. Again, the number of faces, edges, or vertices adjacent to a vertex is called the
valence of the vertex. We can reposition each vertex Q in an arbitrary triangular mesh by the
following rule: Take the weighted centroid of each of the triangles containing Q with Q assigned
the weight
2 / 8 and the other two vertices assigned the weights
3 / 8 ; then take the centroid of
these weighted centroids. Thus each vertex Q of the mesh is repositioned by the formula
n
k
k = 1
n
where
1
n
are the weighted centroids of the faces adjacent to Q and n is the valence of Q.
After several levels of subdivision, most of the interior vertices of a triangular mesh are
ordinary vertices and the extraordinary vertices become more and more isolated because during the
topological phase, each face is subdivided into four faces by the edges joining the midpoints of the
surrounding edges. Thus the new edge vertices and the new face vertices all have valence six (see
Figure 23(b)), so all the new vertices introduced by subdivision are ordinary vertices. Also the
valence of each of the original vertices is unchanged, since the number of faces surrounding a vertex
does not change during subdivision. These results are analogous to similar results for quadrilateral
meshes (see Section 3.1.2). Hence during subdivision ordinary vertices remain ordinary vertices
and extraordinary vertices remain extraordinary vertices with the same valence (see Figure 23(b)).
Since all the new vertices have valence six, locally the new triangular mesh looks exactly like a
triangular mesh for a three direction quartic box spline surface; only vertices from the original
mesh that did not have valence six do not have six adjacent faces. Therefore, just like three direction
quartic box spline surfaces, the surfaces generated in the limit by iterating centroid averaging for
triangular meshes have two continuous derivatives everywhere; the only exceptions are at the limits
of extraordinary vertices. At the limits of extraordinary vertices these surfaces have only one
continuous derivative, except at the limits of extraordinary vertices of valence three where these limit
surfaces are continuous but not necessarily differentiable (see Warren and Weimer, Chapter 8).
(a) Extraordinary Vertex (b) New Topology (c) New Geometry
Figure 23: One level of centroid averaging. In (a) we illustrate eight faces of a triangular mesh
surrounding an extraordinary vertex (blue). In the topological stage ( b ), new vertices (yellow) are
inserted at the midpoints of the edges of the triangular mesh, and new edges and faces are added to
the mesh by joining the midpoints of adjacent edges. In the geometric stage ( c ), each vertex -- blue,
yellow or black -- is repositioned to the centroid of the weighted centroids (green) of the faces
adjacent to the vertex, but the topology of the mesh is not changed. Notice that all the new vertices
(yellow) are ordinary vertices with valence six. Also the extraordinary vertex (blue) at the center
with valence eight remains an extraordinary vertex with valence eight and is repositioned to the
centroid of eight adjacent weighted centroids (green). Since the green centroids are weighted
centroids, we cannot reuse the same centroids to reposition different vertices; rather we must
recompute these green centroids for each vertex. Compare to Figure 13 for quadrilateral meshes.