Subdivision of Uniform Tensor Product B-Spline Surfaces: Algorithms and Stencils, Study notes of Computer Graphics

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

Pre 2010

Uploaded on 08/18/2009

koofers-user-lv0
koofers-user-lv0 🇺🇸

10 documents

1 / 34

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Lecture 30: Subdivision Surfaces
To give subtilty to the simple
K
Proverbs 1:4
1. Motivation
Subdivision algorithms are similar to fractal procedures. In the standard fractal algorithm, we
begin with a compact set
C0
and iterate over a collection of contractive transformations W to
generate a sequence of compact sets
Cn+1=W(Cn)
that converge in the limit to a fractal shape
C=Limn→∞Cn
. In subdivision procedures, we start with a set
P0
(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
Pn+1=S(Pn)
of the same general
type as
P0
that converge in the limit to a smooth curve or surface
P
=Limn→∞Pn
.
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.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22

Partial preview of the text

Download Subdivision of Uniform Tensor Product B-Spline Surfaces: Algorithms and Stencils and more Study notes Computer Graphics in PDF only on Docsity!

Lecture 30: Subdivision Surfaces

To give subtilty to the simple

K Proverbs 1:

1. Motivation

Subdivision algorithms are similar to fractal procedures. In the standard fractal algorithm, we

begin with a compact set

C

0

and iterate over a collection of contractive transformations W to

generate a sequence of compact sets

C

n + 1

= W ( C

n

) that converge in the limit to a fractal shape

C

= Lim n →∞

C

n

. In subdivision procedures, we start with a set

P

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

P

n + 1

= S ( P

n

) of the same general

type as

P

0

that converge in the limit to a smooth curve or surface

P

= Lim n →∞

P

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).

P

0

P

0

+ P

1

P

1

+ P

2

P

0

P

1

P

2

P

0

P

1

P

1

P

2

P

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

{ P

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).

P

00

P

00

+ P

10

P

10

P

10

+ P

20

P

20

L

P

00

+ P

01

+ P

10

+ P

11

P

20

+ P

21

L

M

P

02

P

02

+ P

12

P

12

P

12

+ P

22

P

22

L

P

01

P

01

+ P

11

P

11

P

11

+ P

21

P

21

L

P

11

+ P

12

L

P

00

+ P

01

P

10

+ P

11

P

10

+ P

11

+ P

20

+ P

21

P

01

+ P

02

P

01

+ P

02

+ P

11

+ P

12

P

11

+ P

12

+ P

21

+ P

22

P

21

+ P

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

P

10

P

20

P 20

L

P 00

P 00

P 10

P 10

P 20

P 20

L

P 01

P

01

P

11

P 11

P 21

P

21

L

P 01

P 01

P 11

P 11

P 21

P 21

L

M

P 02

P

02

P 02

P 02

P 12

P 12

P 12

P

12

P 22

P 22

P 22

P 22

L

L

P

00

P

00

+ P

10

P 10

P

10

+ P

20

P 20

L

P

01

P

01

+ P

11

P 11

P

11

+ P

21

P 21

L

M

P 02

P

02

+ P

12

P

12

P

12

+ P

22

P

22

L

P

00

P

00

+ P

10

P 10

P

10

+ P

20

P 20

L

P

01

P

01

+ P

11

P 11

P

11

+ P

21

P 21

L

P 02

P

02

+ P

12

P 12

P

12

+ P

22

P 22

L

(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

{ P

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:

Q

i , j

P

i , j

+ P

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

AV such that

the vectors in

VA 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

C

1 biquadratic B-spline (center) and the

C

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

Q →

n

C

k

k = 1

n

where

C

1

,K, C

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

  • P 1

4

P

0

+ P

1

P 1

  • P 2

2

P 2

  • P 3

2

P 0

P

1

P 2

P

3

P

0

+ 3 P

1

3 P

1

+ P

2

P

1

+ 3 P

2

3 P

2

+ P

3

P

2

+ 3 P

3

P 0

P 1

P 1

P 2

P 2

P 3

P 3

4 P 0

  • 4 P 1

8

P

0

+ 6 P

1

+ P

2

4 P 1

  • 4 P 2

8

P 1

  • 6 P 2

  • P 3

8

4 P

2

+ 4 P

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:

Q

i +1/

P

i

+ P

i + 1

Q

i + 1

P

i

+ 6 P

i + 1

+ P

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

9 P

00

+ 3 P

01

+ 3 P

10

+ P

11

3 P

00

+ P

01

+ 9 P

10

+ 3 P

11

9 P

10

+ 3 P

11

+ 3 P

20

+ P

21

3 P

00

+ 9 P

01

+ P

10

+ 3 P

11

P

00

+ 3 P

01

+ 3 P

10

+ 9 P

11

3 P

10

+ 9 P

11

+ P

20

+ 3 P

21

9 P

01

+ 3 P

02

+ 3 P

11

+ P

12

3 P

01

+ P

02

+ 9 P

11

+ 3 P

12

9 P

11

+ 3 P

12

+ 3 P

21

+ P

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

Q →

n

C

k

k = 1

n

where

C

1

,K, C

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.