CS-184: Computer Graphics Lecture #14: Subdivision Prof. James - - PowerPoint PPT Presentation

cs 184 computer graphics
SMART_READER_LITE
LIVE PREVIEW

CS-184: Computer Graphics Lecture #14: Subdivision Prof. James - - PowerPoint PPT Presentation

CS-184: Computer Graphics Lecture #14: Subdivision Prof. James OBrien University of California, Berkeley V2016-F-14-1.0 Subdivision Start with: Given control points for a curve or surface, find new control points for a sub-section


slide-1
SLIDE 1

CS-184: Computer Graphics

Lecture #14: Subdivision

  • Prof. James O’Brien

University of California, Berkeley

V2016-F-14-1.0

Subdivision

  • Start with:
  • Given control points for a curve or surface, find new control points for

a sub-section of curve/surface

  • Key extension to basic idea:
  • Generalize to non-regular surfaces

2

slide-2
SLIDE 2

Consider NURBS Surface

3

Control mesh dictates feature size. Coarse mesh

Displaced CV Large bump

Consider NURBS Surface

4

Control mesh dictates feature size. Fine mesh

Displaced CV Small bump

Excessive detail

slide-3
SLIDE 3

Tensor Product Surface Refinement

5

Refinement must be constant across u or v directions

Bézier Subdivision

6

u ∈ [0..1] x(u) = ∑

i

bi(u)pi x(u) = [1,u,u2,u3]βzP βz =     1 −3 3 3 −6 3 −1 3 −3 1    

Vector of control points

slide-4
SLIDE 4

Bézier Subdivision

7

x(u) = [1,u,u2,u3]βzP βz =     1 −3 3 3 −6 3 −1 3 −3 1     u ∈ [0..1/2] u ∈ [1/2..1]

Bézier Subdivision

8

x(u) = [1,u,u2,u3]βzP βz =     1 −3 3 3 −6 3 −1 3 −3 1     u ∈ [0..1] u ∈ [0..1]

Can’t change these....

slide-5
SLIDE 5

Bézier Subdivision

9

x(u) = [1,u,u2,u3]βzP

S1 =     1 1/2 1/4 1/8    

u ∈ [0..1 2] u ∈ [0..1]

x(u) = [1,u 2,u2 4 ,u3 8 ]βzP x(u) = [1,u,u2,u3]S1βzP x(u) = [1,u,u2,u3]βzβ−1 z S1βzP x(u) = [1,u,u2,u3]βzHz1P

Bézier Subdivision

10

x(u) = [1,u,u2,u3]βzHz1P x(u) = [1,u,u2,u3]βzP1 P1 = Hz1P

Hz1 =     1

1 2 1 2 1 4 1 2 1 4 1 8 3 8 3 8 1 8

   

slide-6
SLIDE 6

x(u) = [1,u,u2,u3]βzP2

Bézier Subdivision

11

S2 =     1

1 2 1 4 1 8 1 2 1 2 3 8 1 4 3 8 1 8

    Hz2 =    

1 8 3 8 3 8 1 8 1 4 1 2 1 4 1 2 1 2

1    

P2 = Hz2P

Bézier Subdivision

12

x(u,v) = [1,u,u2,u3]βzPβT z[1,v,v2,v3]T

4 x 4 matrix of control points

P2· = HZ2 P

slide-7
SLIDE 7

Bézier Subdivision

13

x(u,v) = [1,u,u2,u3]βzPβT z[1,v,v2,v3]T

4 x 4 matrix of control points

P21 = HZ2 P HT

Z1

Regular B-Spline Subdivision

14

Orthographic top-down view 3D Perspective view

slide-8
SLIDE 8

Regular B-Spline Subdivision

15

Orthographic top-down view 3D Perspective view

Regular B-Spline Subdivision

16

x(u,v) = [1,u,u2,u3]βB P βT

B[1,v,v2,v3]T

P11 = HB1P HT

B1

slide-9
SLIDE 9

Regular B-Spline Subdivision

17

P11 = HB1P HT

B1

In this parametric view these knot points are collocated. The 3D control points are not.

Regular B-Spline Subdivision

18

P11 = HB1P HT

B1

P12 = HB1P HT

B2

slide-10
SLIDE 10

Regular B-Spline Subdivision

19

P11 = HB1P HT

B1

P12 = HB1P HT

B2

P22 = HB2P HT

B2

Regular B-Spline Subdivision

P11 = HB1P HT

B1

P12 = HB1P HT

B2

P22 = HB2P HT

B2

P21 = HB2P HT

B1

HB1 =      

1 2 1 2 1 8 3 4 1 8 1 2 1 2 1 8 3 4 1 8

      HB2 =      

1 8 3 4 1 8 1 2 1 2 1 8 3 4 1 8 1 2 1 2

     

slide-11
SLIDE 11

Regular B-Spline Subdivision

Length 16 vector of coarse CPs Length 25 vector of fine CPs 25 x 16 subdivision matrix

Pi+1 = H Pi

Regular B-Spline Subdivision

Pi+1 = H Pi

Inspection would reveal a pattern

  • Face points
  • Edge points
  • Vertex points
slide-12
SLIDE 12

Regular B-Spline Subdivision

Face point

f = v1 +v2 +v3 +v4 4

v1 v2

v3 v4 f v1 v2 f1 f2

e e = v1 +v2 + f1 + f2 4

Edge point

f1

f2

f3 f4 p

v m1 m2

m3 m4

Vertex point

v = f1 + f2 + f3 + f4 +2(m1 +m2 +m3 +m4)+4p 16 m midpoint of edge, not “edge point” p old “vertex point”

Regular B-Spline Subdivision

  • Recall that control mesh approaches surface
slide-13
SLIDE 13

Regular B-Spline Subdivision

  • Limit of subdivision is the surface
  • Catmull-Clark Subdivision
  • Generalizes regular B-Spine subdivision

Irregular B-Spline Subdivision

An irregular patch Non-quad face Extraordinary vertex

slide-14
SLIDE 14
  • Catmull-Clark Subdivision
  • Generalizes regular B-Spine subdivision
  • Rules reduce to regular for ordinary vertices/faces

Irregular B-Spline Subdivision

f = average of surrounding vertices e = f1+ f2+v1+v2 4 v = ¯ f n + 2 ¯ m n + p(n−3) n ¯ f = average of adjacent face points ¯ m = average of adjacent midpoints n = valence of vertex

Catmull-Clark Subdivision

28

slide-15
SLIDE 15

Catmull-Clark Subdivision

29

Catmull-Clark Subdivision

30

slide-16
SLIDE 16

Catmull-Clark Subdivision

31

Continuity of Catmull-Clark

  • In “ordinary” regions
  • Surface is fully everywhere except extraordinary points
  • Fast evaluation by matrix exponentiation
  • See “Exact Evaluation Of Catmull-Clark Subdivision Surfaces At Arbitrary

Parameter Values” by Jos Stam, SIGGRAPH 1998.

  • At extraordinary points
  • Surface is at least
  • Curvature is Lipschitz continuous at extraordinary points

32

C2 C1

slide-17
SLIDE 17

Catmull-Clark Subdivision

33

Catmull-Clark Subdivision

34

slide-18
SLIDE 18

Catmull-Clark Subdivision

35

Catmull-Clark Subdivision

36