Post on 18-Jul-2020
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