Splines, Subdivision & Manifoldsjean/splines-subdiv.pdfHistorical Perspective splines 1960 1970 1980...

Post on 18-Jul-2020

4 views 0 download

Transcript of Splines, Subdivision & Manifoldsjean/splines-subdiv.pdfHistorical Perspective splines 1960 1970 1980...

Splines, Subdivision& Manifolds

Luiz VelhoIMPA

Historical Perspectivesplines

1960 1970 1980 2000 20101990

subdivision surfaces manifolds

Bezier (60)de Casteljau (60)

De Boor (72) Chaikin (74)

Riesenfeld (80)

Doo-Sabin (78) Catmull-Clark (78)

Loop (87)Dyn (90)

Zorin (89)Kobbelt (00)

Velho (01)Schroeder (02)

Grimm (95)Naveau (02)

Zorin (04)Gu (06)

Siqueira (09)

Modeling

• Splines (Regular Surfaces)

- Free-Form Modeling

• Subdivision (Arbitrary Surfaces)

- Efficient Algorithms

• Manifolds (Smooth Surfaces)

- Intrinsic Operations

Related Developments

• Parametrizations

• Surface Deformation

• Re-meshing

• Quad Structures

• Geometry Processing

• Discrete Differential Geometry (DDG)

Scale Spaces & Wavelets

• Constructions

- Meyer (80)

• Smoothness

- Daubechies (88)

• Multiresolution + FWT

- Mallat (89)

• Lifting

- Sweldens (95)

Road Map

Refinable Functions

Scale Spaces

Subdivision

Splines

Scaling Function• Localization (space / frequency)

• Normalization

�(x)

Z�(x)dx = 1

Scaling Family

• Two Parameters

- Change of Scale

- Change of Position

�s,t(x) =1

|s|1/2�(

x

s

� t)

�s(x) =1

|s|1/2�(

x

s

)

�t(x) = �(x� t)

Scale Spaces• Smoothing Operator

• Linear Scale Space

- Gaussian

• Physical Interpretation

- Heat equation (Smoothing ~ Diffusion)

�s(f(x)) =

Z�s,t(x)f(x)dt

Discretization

• Dyadic Structure

• Hyperbolic Lattice

�s0,t0 = {(sm0 , nsm0 t);m,n 2 Z}

�2,1 = {(2j , k2j); j, k 2 Z}

V1

V2

V3

V4

Function Representation• Representation Operator:

• Approximation Spaces

R(f) = (fj)j2Z

R : L2(R) ! l2(R)

space of functions space of sequences

Vj = {�j,k}k2Z

scale basis

Basis and Representation• Orthogonal Projection ~ Basis Vj

Projvj(f) =

X

k

< f,�j,k >=

X

k

f jk�j,k

f =X

k

f jk�j,k

f 7! (f jk)

representation reconstruction

Two-Scale Relation• Dilation Equation

- Scaling Basis:

• Reflexive Definition of Basis

�0 2 V0 ⇢ V�1

�0 =X

k

< �0,��1,k > ��1,k =X

k

hk��1,k

�(x) =p2X

k

hk�(2x� k)

Refinable Function

Multiresolution Analysis• Nested Approximation Spaces

Vj+1Vj

Vj-1

Dilations

Translations

{0} ⇢ · · · ⇢ Vj+1 ⇢ Vj ⇢ Vj�1 ⇢ · · · ⇢ L2(R)

�j,k(x) = 2�2/j�(2�j

x� k)

B-Spline Basis• Refinable Scaling Functions

• Basis of

- Uniform Piecewise Polynomials

• Properties

- Smoothness

- Compact Support

- Normalization

- Partition of Unity

Pm

B-Splines• Def: (repeated integration)

- B-Spline of order 1 (Haar)

- B-Spline of order m > 1

n

1(x) =

⇢1 0 � x � 1;

0 otherwise.

0 1

1

n

m(x) =

Zn

m�1(x� t)dt

Obs: recurrence relation

B-Splines & Gaussian• Theorem:

limm!1

n

m(x) = G(x)

B-Spline Subdivision• Refinement Relation

• Subdivision Mask

n

m(x) =mX

k=0

S

mk n

m(2x� k)

Smk =

1

2m�1

✓mk

Refinable Funcions• Example: Linear Spline

�(x) =p2[1

2�(2x+ 1) + �(2x) +

1

2�(2x� 1)]

1

2

1

21

Example• Linear B-Spline

• Rep of p(x) = {pi}

p(x) =X

pinm(x� i)

n

2(x) =

8<

:

x if 0 < x � 1;

2� x if 1 < x � 2;

0 otherwise

10 2

Scaling and Refinement• Given f in Vj

• Compute Rep of f in Vj-1

f(x) =X

k

f

jk(x)

f j�1k =< f,�j�1,k >

=<X

k

f jk�

jk,�j�1,k >

=X

k

f jk < �j

k,�j�1,k >

=X

k

f jkhk

Refinement & Reconstruction

• Decrease Scale = Increase Resolution

Subdivision • Reconstruction of f by Refinement

(limit process)

- start with

- iterate

{f jk}k2Z

f j�1k =

Xf jkhk

j ! �1

subdivision operator

Elements of Subdivision

• Base Shape (control points)

• Limit Shape

• Subdivision Scheme

P0

P1

S

P1 = S1P0

Subdivision Process• Subdivision Iteration

• Limit Shape

Pk = SPk�1

P1 = S1P0

Graphical Example

P0 P1 P2 P3 · · ·

Subdivision Schemes

• Anatomy of Subdivision

- R : Refinement Operator

- G : Smoothing Operator

• Issues

- Representation (multiresolution basis)

- Convergence

S = (R,G)

Subdivision Algorithm• Start with

• Repeat:

- Upsample and Change Level

- Update

P0

Pj(x) = " Pj�1(x)

Pj(x) = GPj(x)

Graphical View

• Topology

• Geometry

P k

P k+1

R

G

Vector Notation• Knot Vector

• Subdivision Matrix

P0 = (. . . , p0�1, p00, p

01, . . .)

0

BBBBBB@

...p1�1

p10p11...

1

CCCCCCA=

0

BBBB@

. s�2

. s�1

. . . s2 s0 s�2 . . .s1 .s2 .

1

CCCCA

0

BBBBBB@

...p0�1

p00p01...

1

CCCCCCA

refinement smoothing

Characteristics

• Nature (level dependency)

- Stationary

- Non-Stationary

• Domain Structure (connectivity)

- Regular

- Non-Regular

Sk = S

Functional Setting

• Uniform Partition

y = p(x)

x

Parametric Setting

• Extends functional setting

- Control Points

p0

p1p2

p3

x

y

t

p(t)

(x, y) = p(t) = (x(t), y(t))

pi = (xi, yi)

1D Subdivision• Example: Cubic B-Spline

S(x) =1

8x0 +

1

2x1 +

3

4x2 +

1

2x3 +

1

8x4

0

BBBBBB@

...

pj+1i

...

1

CCCCCCA=

0

BBBB@

12

12

18

34

18

. . . . 12

12 . . .

18

34

18

. 12

12

1

CCCCA

0

BBBBBB@

...

pjk

...

1

CCCCCCA

2D Subdivision• Parametric Surfaces

g : U ⇢ R2 ! R3

(x, y, z) = g(u, v) = (x(u, v), y(u, v), z(u, v))

g(u, v)

U M

Domain Discretization• Regular Meshes

2 directions 3 directions

valence 4 valence 6

regular vertices

2D Refinement• Quad-Mesh

• Tri-Mesh

Obs: preserves regularity

Arbitrary Meshes• Semi-Regular Meshes

- Irregular Base Mesh

- Regular Refinement

extraordinary vertex

B-Splines & Subdivision• Subdivision Surfaces

- Generalize Splines to Non-Regular Connectivity

• Examples:

- Catmull-Clark(tensor product bi-cubic B-spline)

- Loop Subdivision Surface(three-directional quartic box spline)

Splines & Manifolds• Uniform Splines

- Particular case of Manifold Structure

• Characterization

- Charts: (basis functions at control vertices)

- Transition Function: (affine transformation)

- Partition of Unity

B-Spline Basis• Recursive Definition

• Closed Form (at segment Sj)

with

• Truncated Power

Bn := Bn�1 ⇤B0

(x� xi)n+ =

⇢(x� xi)n if x � xi;

0 if x < xi.

bn(x) :=n+ 1

n

n+1X

i=0

!i,n(x� xi)n+

bj,n(x) = bn(x� xj)translation

xjxj�1

B-Spline Evaluation• At a Segment Sj

• Example:

sj(x) =m�1X

j=0

cjbj,n(x)

Sj

cjcj-1

bj-1 bj

2D Scheme• Quadrilateral Structure

control mesh charts / transition function

Extraordinary Vertices• Characteristic Map

k=5 k=13

‣ Breaks good properties (transition function, etc)

Topological Obstructions

• A closed 2-manifold M admits an affine atlas, if and only if M is a torus