lecture 9: subdivision surfaces · subdivision surfaces these are generated by iterative...

18
Lecture 9: Subdivision surfaces Topics: 1. Subdivision of Bezier curves 2. Chaikin’s scheme 3. General subdivision schemes 4. Bi-quadratic and bi-cubic subdivision 5. Subdivision surfaces: Catmull-Clark and Loop Michael S. Floater, Oslo, Oct. 2003 1

Upload: others

Post on 27-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

Lecture 9:

Subdivision surfaces

Topics:

1. Subdivision of Bezier curves

2. Chaikin’s scheme

3. General subdivision schemes

4. Bi-quadratic and bi-cubic subdivision

5. Subdivision surfaces: Catmull-Clark and Loop

Michael S. Floater, Oslo, Oct. 2003

1

Page 2: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

Subdivision of Bezier Curves

We saw in the last chapter how the de Casteljau algorithm both evaluates

the curve and divides it into two.

p1

l1

p0 = l0 p3 = r3

r2

p2l2 r1

l3 = r0

l(u) r(u)

If we divide a cubic curve at its (parametric) midpoint, the initial control

points p0, p1, p2, p3 are replaced by the new control points

`0 = p0

`1 = (p0 + p1)/2,

`2 = (p0 + 2p1 + p2)/4,

`3 = r0 = (p0 + 3p1 + 3p2 + p3)/4,

r1 = (p1 + 2p2 + p3)/4,

r2 = (p2 + p3)/2,

r3 = p3.

Under repeated division, called subdivision, the control polygon converges

to the curve. After only a few iterations the polygon is so close to the curve

that we can simply render the polygon rather than the curve.

2

Page 3: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

Subdivision curves

A subdivision curve is a curve generated by iterative refinement of a given

polygon, called the control polygon. The limit curve can be rendered by

simply rendering the polygon resulting from sufficiently many refinements.

Both Bezier curves and spline curves are subdivision curves. For example,

Chaikin’s scheme generates a C1 quadratic spline curve with uniform knots.

v

v

vi−1

i+1

i

From a control polygon . . . , vi−1, vi, vi+1, . . ., we generate a refined

polygon by the rule

v12i =

3

4vi−1 +

1

4vi,

v12i+1 =

1

4vi−1 +

3

4vi.

v

v

vi−1

i+1

iv

v2i2i+11

1

3

Page 4: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

The full subdivision scheme is as follows.

1. Set v0i = vi, for all i ∈ ZZ.

2. For n = 1, 2, . . ., set

vn2i =

3

4vn−1

i−1 +1

4vn−1

i ,

vn2i+1 =

1

4vn−1

i−1 +3

4vn−1

i .

The number of points doubles at each iteration. Here is the limiting curve:

v

v

vi−1

i+1

i

4

Page 5: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

The general (linear) subdivision scheme is

vni =

k∈ZZ

ai−2kvn−1

k ,

where a0, a1, . . . , am is the (finite) subdivision mask (all other ai are

zero). The mask for Chaikin’s scheme is

( a0 a1 a2 a3 ) = ( 1

4

3

4

3

4

1

4) .

The mask can be split into two masks, for even and odd indexes separately:

v2i =∑

k∈ZZ

a2kvn−1

i−k ,

v2i+1 =∑

k∈ZZ

a2k+1vn−1

i−k ,

In Chaikin’s scheme, these equations become

vn2i = a0v

n−1

i + a2vn−1

i−1 =1

4vn−1

i +3

4vn−1

i−1 ,

vn2i+1 = a1v

n−1

i + a3vn−1

i−1 =3

4vn−1

i +1

4vn−1

i−1 ,

and the two masks are

( a0 a2 ) = ( 1

4

3

4) and ( a1 a3 ) = ( 3

4

1

4) .

5

Page 6: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

Another example is a C2 cubic spline curve (again with uniform knots).

The mask is

( a0 a1 a2 a3 a4 ) =1

8( 1 4 6 4 1 ) .

If we split into the two masks (a0, a2, a4) and (a1, a3), we get the scheme

vn2i =

1

8(vn−1

i + 6vn−1

i−1 + vn−1

i−2 ),

vn2i+1 =

1

2(vn−1

i + vn−1

i−1 ).

v

v

vi−2

i

i−1

v12i v1

2i+1

A uniform Cd−1 spline curve of degree d can be generated by the mask

( a0 a1 . . . ad+1 ) =1

2d((d+1

0

) (d+1

1

). . .

(d+1

d+1

)) .

6

Page 7: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

Subdivision surfaces

These are generated by iterative refinement of a polygonal mesh, usually

with four-sided faces (quadrilateral meshes) or three-sided faces (triangle

meshes).

7

Page 8: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

For uniform (‘structured’) meshes, the limit surface is a spline surface.

We get a tensor-product spline surface from a rectangular mesh, and a

‘box-spline’ surface from a triangular mesh.

Triangular gridRectangular grid

For non-uniform (‘unstructured’) meshes, the limit surface has no

closed form. However, the surface is locally a spline surface, except at

so-called extraordinary points.

Quadrilateral mesh Triangular mesh

8

Page 9: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

Tensor-product subdivision on rectangular grids.

Example 1. Chaikin (C1 biquadratic).

vi−1,jn−1

i,jn−1v

v

v

v

n−1

n2i+1,2j

2i,2j

i,j−1

i−1,j−1n−1

2i,2j+1

nv

v2i+1,2j+1n

vn

vn2i,2j =

1

16(9vn−1

i−1,j−1 + 3vn−1

i,j−1 + 3vn−1

i−1,j + vn−1

i,j )

vn2i+1,2j =

1

16(3vn−1

i−1,j−1 + 9vn−1

i,j−1 + vn−1

i−1,j + 3vn−1

i,j )

vn2i,2j+1 =

1

16(3vn−1

i−1,j−1 + vn−1

i,j−1 + 9vn−1

i−1,j + 3vn−1

i,j )

vn2i+1,2j+1 =

1

16(vn−1

i−1,j−1 + 3vn−1

i,j−1 + 3vn−1

i−1,j + 9vn−1

i,j ).

There are four submasks

1

16

(3 19 3

)

,1

16

(1 33 9

)

,1

16

(9 33 1

)

,1

16

(3 91 3

)

.

They are tensor-products of the quadratic curve masks. For example

1

16

(3 19 3

)

=1

4

(13

)1

4( 3 1 ) .

9

Page 10: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

Example 2. C2 bicubic.

vi−1,jn−1

i,jn−1v

v

v

n−1

i,j−1

i−1,j−1n−1

v

v

v

v

vi−2,j

i−2,j−2

i−1,j−2

i,j−2

n−1

n−1

n−1

n−1

n−12i,2j+1

v

2i+1,2j+1vn

2i+1,2jvn

v2i,2j

n

i−2,j−1

n

The mask for cubic curves is

( a0 a1 a2 a3 a4 ) =1

8( 1 4 6 4 1 ) .

and the two submasks are

1

8( 1 6 1 ) and

1

2( 1 1 ) .

10

Page 11: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

If we take tensor-products of these two submasks we get the four bicubic

masks

1

64

1 6 16 36 61 6 1

︸ ︷︷ ︸

Mask A

,1

16

1 16 61 1

,1

16

(1 6 11 6 1

)

︸ ︷︷ ︸

Masks B

,1

4

(1 11 1

)

︸ ︷︷ ︸

Mask C

.

These are used to compute the four new points

(vn2i+1,2j vn

2i+1,2j+1

vn2i,2j vn

2i,2j+1

)

from the old points

vn−1

i−2,j vn−1

i−1,j vn−1

i,j

vn−1

i−2,j−1 vn−1

i−1,j−1 vn−1

i,j−1

vn−1

i−2,j−2 vn−1

i−1,j−2 vn−1

i,j−2

.

11

Page 12: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

Catmull-Clark subdivision surfaces

This is a generalization of the C2 bicubic scheme to an arbitrary quadri-

lateral mesh. The limit surface is C2 except at extraordinary points.

12

Page 13: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

It is enough to define the masks associated with the following figure. In the

figure, 5 faces meet at the vertex v. In general there will be N faces. In the

‘canonical’ case we have N = 4.

e4

3f

e3

ff4

2n−1

f n

2en−1

f5 e

1

n−1v

v

3

en4

f1n−1

n−1

n−1n−1

n−1

f

f f

fn

n n

n4

5 1

2

e

e

2en

n

n5

1

en3

n−1

n−1

n−15

e

n

As for the N = 4 bicubic case, there are three types of points: vertex points

v, edge points e, and face points f , and there are three associated masks.

13

Page 14: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

The algorithm goes in three steps.

Step 1. Compute the new face points. We use Mask C as before:

fni =

1

4(vn−1 + en−1

i + en−1

i+1 + fn−1

i ).

Step 2. Compute the new edge points. We use Mask B as before:

eni =

1

16(en−1

i−1 + fn−1

i−1 + 6vn−1 + 6en−1

i + en−1

i+1 + fn−1

i ).

Using the new face points fni computed in the first step, this computation

reduces to

eni =

1

4(vn−1 + en−1

i + fni−1 + fn

i ).

Step 3. Compute the new vertex point. For N = 4 the rule for Mask A is

vn =1

64

(

36vn−1 + 64∑

i=1

en−1

i +4∑

i=1

fn−1

i

)

,

which can be expressed as

vn =1

4

(

2vn−1 +1

4

4∑

i=1

en−1

i +1

4

4∑

i=1

fni

)

.

Catmull and Clark proposed the generalization

vn =1

N

(

(N − 2)vn−1 +1

N

N∑

i=1

en−1

i +1

N

N∑

i=1

fni

)

.

This formula ensures C1 continuity at the extraordinary points. It can

be shown that C2 continuity at extraordinary points is impossible without

using larger masks.

14

Page 15: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

Doo-Sabin subdivision

As Catmull-clark subdivision surfaces generalize C2 bicubic spline surfaces,

Doo-Sabin subdivision surfaces generalize C1 biquadratic spline surfaces.

Tangent plane (C1) continuity is again achieved at the extrordinary points.

We will not give the details, just illustrate with the following example.

15

Page 16: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

Loop subdivision

This is a subdivision scheme for arbitrary triangle meshes, based on so-

called ‘box-splines’ (which is beyond the scope of this course), specifically

C2 quartic ‘box-splines.

16

Page 17: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

In this scheme we only compute vertex points and edge points, so there are

only two masks. After one subdivision step each former triangle is replaced

by four, a so-called 1-4 split.

Suppose we have the situation of the figure below.

e4e

3

2en−1

e1

n−1v

v

en4

n−1

n−1

e

e

2en

n

n5

1

en3

n−1

n−15

e

n

Here the number N of neighbouring triangles is 5. The ‘canonical’ case is

N = 6 in which case the scheme reduces to ‘box-spline’ subdivision, yielding

a C2 surface. The algorithm has just two steps.

17

Page 18: Lecture 9: Subdivision surfaces · Subdivision surfaces These are generated by iterative reflnement of a polygonal mesh, usually with four-sided faces (quadrilateral meshes) or three-sided

Step 1. Compute the new edge points by the rule

eni =

1

8(3vn−1 + 3en−1

i + en−1

i−1 + en−1

i+1 ).

Step 2. Compute the new vertex points. The rule for ‘box-splines’ in the

case N = 6 is

vn =5

8vn−1 +

3

8

(1

6

6∑

i=1

en−1

i

)

.

Loop proposed the generalization

vn = αNvn−1 + (1 − αN )( 1

N

N∑

i=1

en−1

i

)

,

and showed that with the weighting

αN =(3

8+

1

4cos(2π/N)

)2

+3

8,

the limit surface is C1 at the extraordinary points. The surface is a gener-

alization of a box-spline surface because α6 = 5

8.

18