subdivision curves and surfacessheffa/dgp/ppts/subdivision.pdf · subdivision surfaces or how to...
TRANSCRIPT
1
University ofUniversity ofBritish ColumbiaBritish Columbia
Subdivision Surfaces or How to Generate a Smooth Mesh?
?→
University ofUniversity ofBritish ColumbiaBritish Columbia
Subdivision Curves and Surfaces
Subdivision – given polyline(2D)/mesh(3D) recursively modify & add vertices to achieve smooth curve/surface
Each iteration generates smoother + more refined mesh
2
University ofUniversity ofBritish ColumbiaBritish Columbia
What is wrong with NURBS?
Very, very difficult to avoid seamsWoody’s hand from Pixar’s Toy Story
Subdivision – no seamsGeri’s hand from Geri’s Game
University ofUniversity ofBritish ColumbiaBritish Columbia
Corner Cutting
3
University ofUniversity ofBritish ColumbiaBritish Columbia
Corner Cutting
1 : 33
: 1
University ofUniversity ofBritish ColumbiaBritish Columbia
Corner Cutting
4
University ofUniversity ofBritish ColumbiaBritish Columbia
Corner Cutting
University ofUniversity ofBritish ColumbiaBritish Columbia
Corner Cutting
5
University ofUniversity ofBritish ColumbiaBritish Columbia
Corner Cutting
University ofUniversity ofBritish ColumbiaBritish Columbia
Corner Cutting
6
University ofUniversity ofBritish ColumbiaBritish Columbia
Corner Cutting
University ofUniversity ofBritish ColumbiaBritish Columbia
Corner Cutting
control polygon
limit curvecontrol point
7
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
8
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
1 :
1
1 :
1
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
1 :
8
9
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
10
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
11
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
12
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
13
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
14
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
University ofUniversity ofBritish ColumbiaBritish Columbia
The 4-point scheme
control polygon
limit curvecontrol point
15
University ofUniversity ofBritish ColumbiaBritish Columbia
Subdivision curves
Non interpolatory subdivision schemes
Corner Cutting
Interpolatory subdivision schemes
The 4-point scheme
University ofUniversity ofBritish ColumbiaBritish Columbia
Basic concepts of Subdivision
Subdivision curve – limit of recursive subdivision applied to given polygonEach iteration
Increase number of vertices (approximately) * 2Initial polygon - control polygon
Central questions: Convergence: Given a subdivision operator and a control polygon, does the subdivision process converge? Smoothness: Does subdivision converge to smooth curve?
16
University ofUniversity ofBritish ColumbiaBritish Columbia
Subdivision schemes for surfaces
Each iteration Subdivision refines control net (mesh)Increase number of vertices (approximately) * 4
Mesh vertices converge to limit surfaceEvery subdivision method has:
Method to generate net topology rules to calculate location of new vertices
University ofUniversity ofBritish ColumbiaBritish Columbia
Defined for triangular meshes (control nets)
Every face replaced by 4 new triangular facesTwo kinds of new vertices:
Green vertices are associated with old edgesYellow vertices are associated with old vertices
Triangular subdivision
Old vertices New vertices
17
University ofUniversity ofBritish ColumbiaBritish Columbia
Loop’s scheme
New vertex is weighted average of old vertices
List of weights called subdivision mask or stencil
3 3
1
1
1
1
1
1
1
( )( )n
nnwn −
+−= 22cos2340
64π
Rule for new yellow vertices (n – vertex valence)
Rule for new green vertices
wn
University ofUniversity ofBritish ColumbiaBritish Columbia
The original control net
18
University ofUniversity ofBritish ColumbiaBritish Columbia
After 1st iteration
University ofUniversity ofBritish ColumbiaBritish Columbia
After 2nd iteration
19
University ofUniversity ofBritish ColumbiaBritish Columbia
After 3rd iteration
University ofUniversity ofBritish ColumbiaBritish Columbia
Loop Scheme
20
University ofUniversity ofBritish ColumbiaBritish Columbia
Loop Limit Surface
Limit surfaces of Loop’s subdivision is C2 almost everywhere
University ofUniversity ofBritish ColumbiaBritish Columbia
Butterfly Scheme
Interpolatory scheme
New yellow vertices inherit location of old vertices
New green vertices calculated by following stencil:-1
-1
-1
-1
88
2
2
21
University ofUniversity ofBritish ColumbiaBritish Columbia
The original control net
University ofUniversity ofBritish ColumbiaBritish Columbia
After 1st iteration
22
University ofUniversity ofBritish ColumbiaBritish Columbia
After 2nd iteration
University ofUniversity ofBritish ColumbiaBritish Columbia
After 3rd iteration
23
University ofUniversity ofBritish ColumbiaBritish Columbia
Butterfly Scheme
University ofUniversity ofBritish ColumbiaBritish Columbia
Butterfly limit surface
Limit surfaces of Butterfly subdivision are C1, but do not have second derivative
24
University ofUniversity ofBritish ColumbiaBritish Columbia
Comparison
University ofUniversity ofBritish ColumbiaBritish Columbia
Boundaries & Features: Loop
Boundary vertices – depend ONLY on other boundary vertices Corner vertices left in place
Sometimes modified rules for corner neighbors
Treat features (creases) like boundaries
1 6 1
1 1
25
University ofUniversity ofBritish ColumbiaBritish Columbia
Scheme Zoo
More schemes:
Catmul-Clark KobbeltDuo-Sabin…
Proving scheme works:ConvergenceDegree of continuityAffine invariance
University ofUniversity ofBritish ColumbiaBritish Columbia
Affine Invariance
TransformT
TransformT
subdivide
subdivide
Coefficients of masks sum to 1 –weighted average
26
University ofUniversity ofBritish ColumbiaBritish Columbia
Affine Invariance
1
8
1
8
3
83
8
®
® ®
® ®
1¡ n® p =X
aipi
Coefficients of masks must sum to 1
Xai(pi + t) =
³Xai´t+ p
1
displacement
University ofUniversity ofBritish ColumbiaBritish Columbia
Analysis of Subdivision
Test:ConvergenceSmoothness
Goals:Help to choose the rules Ensure that all surfaces have desired properties
PlanDefine subdivision surfacesRelate properties to coefficients
27
University ofUniversity ofBritish ColumbiaBritish Columbia
Subdivision Matrix
Relate control on finer level to coarser level
Useful forAnalysis of properties
smoothnessaffine invariance
Formulas for normals
Explicit evaluation of surfaces at arbitrary points of the domain
University ofUniversity ofBritish ColumbiaBritish Columbia
Controls of K-Sided Patch
Simplest case - consider only 1-ring
c p0p6p4
p5
p3p2
c
p6
p0
p1p2
p3
p5
p4
p1
28
University ofUniversity ofBritish ColumbiaBritish Columbia
0BBBBBBBBBBBBBBBBBBBBBBBBB@
7=16 3=16 3=16 3=16 0 0 0 0 0 0
3=8 3=8 1=8 1=8 0 0 0 0 0 0
3=8 1=8 3=8 1=8 0 0 0 0 0 0
3=8 1=8 1=8 3=8 0 0 0 0 0 0
1=16 5=8 1=16 1=16 1=16 0 0 1=16 0 1=16
1=16 1=16 5=8 1=16 0 1=16 0 1=16 1=16 0
1=16 1=16 1=16 5=8 0 0 1=16 0 1=16 1=16
1=8 3=8 3=8 0 0 0 0 1=8 0 0
1=8 0 3=8 3=8 0 0 0 0 1=8 0
1=8 3=8 0 3=8 0 0 0 0 0 1=8
1CCCCCCCCCCCCCCCCCCCCCCCCCA
Subdivision Matrix
University ofUniversity ofBritish ColumbiaBritish Columbia
0BBBBBBBBBBBBBBBBBBBBBBBBB@
7=16 3=16 3=16 3=16 0 0 0 0 0 0
3=8 3=8 1=8 1=8 0 0 0 0 0 0
3=8 1=8 3=8 1=8 0 0 0 0 0 0
3=8 1=8 1=8 3=8 0 0 0 0 0 0
1=16 5=8 1=16 1=16 1=16 0 0 1=16 0 1=16
1=16 1=16 5=8 1=16 0 1=16 0 1=16 1=16 0
1=16 1=16 1=16 5=8 0 0 1=16 0 1=16 1=16
1=8 3=8 3=8 0 0 0 0 1=8 0 0
1=8 0 3=8 3=8 0 0 0 0 1=8 0
1=8 3=8 0 3=8 0 0 0 0 0 1=8
1CCCCCCCCCCCCCCCCCCCCCCCCCA
Subdivision Matrix
29
University ofUniversity ofBritish ColumbiaBritish Columbia
0BBBBBBBBBBBBBBBBBBBBBBBBB@
7=16 3=16 3=16 3=16 0 0 0 0 0 0
3=8 3=8 1=8 1=8 0 0 0 0 0 0
3=8 1=8 3=8 1=8 0 0 0 0 0 0
3=8 1=8 1=8 3=8 0 0 0 0 0 0
1=16 5=8 1=16 1=16 1=16 0 0 1=16 0 1=16
1=16 1=16 5=8 1=16 0 1=16 0 1=16 1=16 0
1=16 1=16 1=16 5=8 0 0 1=16 0 1=16 1=16
1=8 3=8 3=8 0 0 0 0 1=8 0 0
1=8 0 3=8 3=8 0 0 0 0 1=8 0
1=8 3=8 0 3=8 0 0 0 0 0 1=8
1CCCCCCCCCCCCCCCCCCCCCCCCCA
Subdivision Matrix
University ofUniversity ofBritish ColumbiaBritish Columbia
0BBBBBBBBBBBBBBBBBBBBBBBBB@
7=16 3=16 3=16 3=16 0 0 0 0 0 0
3=8 3=8 1=8 1=8 0 0 0 0 0 0
3=8 1=8 3=8 1=8 0 0 0 0 0 0
3=8 1=8 1=8 3=8 0 0 0 0 0 0
1=16 5=8 1=16 1=16 1=16 0 0 1=16 0 1=16
1=16 1=16 5=8 1=16 0 1=16 0 1=16 1=16 0
1=16 1=16 1=16 5=8 0 0 1=16 0 1=16 1=16
1=8 3=8 3=8 0 0 0 0 1=8 0 0
1=8 0 3=8 3=8 0 0 0 0 1=8 0
1=8 3=8 0 3=8 0 0 0 0 0 1=8
1CCCCCCCCCCCCCCCCCCCCCCCCCA
Subdivision Matrix
30
University ofUniversity ofBritish ColumbiaBritish Columbia
0BBBBBBBBBBBBBBBBBBBBBBBBB@
7=16 3=16 3=16 3=16 0 0 0 0 0 0
3=8 3=8 1=8 1=8 0 0 0 0 0 0
3=8 1=8 3=8 1=8 0 0 0 0 0 0
3=8 1=8 1=8 3=8 0 0 0 0 0 0
1=16 5=8 1=16 1=16 1=16 0 0 1=16 0 1=16
1=16 1=16 5=8 1=16 0 1=16 0 1=16 1=16 0
1=16 1=16 1=16 5=8 0 0 1=16 0 1=16 1=16
1=8 3=8 3=8 0 0 0 0 1=8 0 0
1=8 0 3=8 3=8 0 0 0 0 1=8 0
1=8 3=8 0 3=8 0 0 0 0 0 1=8
1CCCCCCCCCCCCCCCCCCCCCCCCCA
Subdivision Matrix
University ofUniversity ofBritish ColumbiaBritish Columbia
0BBBBBBBBBBBBBBBBBBBBBBBBB@
7=16 3=16 3=16 3=16 0 0 0 0 0 0
3=8 3=8 1=8 1=8 0 0 0 0 0 0
3=8 1=8 3=8 1=8 0 0 0 0 0 0
3=8 1=8 1=8 3=8 0 0 0 0 0 0
1=16 5=8 1=16 1=16 1=16 0 0 1=16 0 1=16
1=16 1=16 5=8 1=16 0 1=16 0 1=16 1=16 0
1=16 1=16 1=16 5=8 0 0 1=16 0 1=16 1=16
1=8 3=8 3=8 0 0 0 0 1=8 0 0
1=8 0 3=8 3=8 0 0 0 0 1=8 0
1=8 3=8 0 3=8 0 0 0 0 0 1=8
1CCCCCCCCCCCCCCCCCCCCCCCCCA
Subdivision Matrix
31
University ofUniversity ofBritish ColumbiaBritish Columbia
0BBBBBBBBBBBBBBBBBBBBBBBBB@
7=16 3=16 3=16 3=16 0 0 0 0 0 0
3=8 3=8 1=8 1=8 0 0 0 0 0 0
3=8 1=8 3=8 1=8 0 0 0 0 0 0
3=8 1=8 1=8 3=8 0 0 0 0 0 0
1=16 5=8 1=16 1=16 1=16 0 0 1=16 0 1=16
1=16 1=16 5=8 1=16 0 1=16 0 1=16 1=16 0
1=16 1=16 1=16 5=8 0 0 1=16 0 1=16 1=16
1=8 3=8 3=8 0 0 0 0 1=8 0 0
1=8 0 3=8 3=8 0 0 0 0 1=8 0
1=8 3=8 0 3=8 0 0 0 0 0 1=8
1CCCCCCCCCCCCCCCCCCCCCCCCCA
Subdivision Matrix
University ofUniversity ofBritish ColumbiaBritish Columbia
0BBBBBBBBBBBBBBBBBBBBBBBBB@
7=16 3=16 3=16 3=16 0 0 0 0 0 0
3=8 3=8 1=8 1=8 0 0 0 0 0 0
3=8 1=8 3=8 1=8 0 0 0 0 0 0
3=8 1=8 1=8 3=8 0 0 0 0 0 0
1=16 5=8 1=16 1=16 1=16 0 0 1=16 0 1=16
1=16 1=16 5=8 1=16 0 1=16 0 1=16 1=16 0
1=16 1=16 1=16 5=8 0 0 1=16 0 1=16 1=16
1=8 3=8 3=8 0 0 0 0 1=8 0 0
1=8 0 3=8 3=8 0 0 0 0 1=8 0
1=8 3=8 0 3=8 0 0 0 0 0 1=8
1CCCCCCCCCCCCCCCCCCCCCCCCCA
Subdivision Matrix
32
University ofUniversity ofBritish ColumbiaBritish Columbia
0BBBBBBBBBBBBBBBBBBBBBBBBB@
7=16 3=16 3=16 3=16 0 0 0 0 0 0
3=8 3=8 1=8 1=8 0 0 0 0 0 0
3=8 1=8 3=8 1=8 0 0 0 0 0 0
3=8 1=8 1=8 3=8 0 0 0 0 0 0
1=16 5=8 1=16 1=16 1=16 0 0 1=16 0 1=16
1=16 1=16 5=8 1=16 0 1=16 0 1=16 1=16 0
1=16 1=16 1=16 5=8 0 0 1=16 0 1=16 1=16
1=8 3=8 3=8 0 0 0 0 1=8 0 0
1=8 0 3=8 3=8 0 0 0 0 1=8 0
1=8 3=8 0 3=8 0 0 0 0 0 1=8
1CCCCCCCCCCCCCCCCCCCCCCCCCA
Subdivision Matrix
University ofUniversity ofBritish ColumbiaBritish Columbia
0BBBBBBBBBBBBBBBBBBBBBBBBB@
7=16 3=16 3=16 3=16 0 0 0 0 0 0
3=8 3=8 1=8 1=8 0 0 0 0 0 0
3=8 1=8 3=8 1=8 0 0 0 0 0 0
3=8 1=8 1=8 3=8 0 0 0 0 0 0
1=16 5=8 1=16 1=16 1=16 0 0 1=16 0 1=16
1=16 1=16 5=8 1=16 0 1=16 0 1=16 1=16 0
1=16 1=16 1=16 5=8 0 0 1=16 0 1=16 1=16
1=8 3=8 3=8 0 0 0 0 1=8 0 0
1=8 0 3=8 3=8 0 0 0 0 1=8 0
1=8 3=8 0 3=8 0 0 0 0 0 1=8
1CCCCCCCCCCCCCCCCCCCCCCCCCA
Subdivision Matrix
33
University ofUniversity ofBritish ColumbiaBritish Columbia
Diagonalize subdivision matrix
eigenvectors
eigenvalues
: vector of points in a neighborhood
xi, i = 0::N
¸i, i = 0::N
p
p =Xi
aixi
(N+1)-vector of 3D points3D vector
Eigen Decomposition
University ofUniversity ofBritish ColumbiaBritish Columbia
“Good” case: &
can make zero by moving control points (by affine invariance)
a0
Smp = a0x0 + ¸m1 a1x1 + ¸
m2 a2x2 + ¸
m3 a3x3 + : : :
x0 = [1;1; : : : 1]
Eigenvectors
limit position tangent vectors
10 =λ 1n,,1i,1i −=< Kλ
34
University ofUniversity ofBritish ColumbiaBritish Columbia
Next higher order termsassume move control points so that
1
¸mSmp = (a1x1 + a2x2) +
µ¸3¸
¶mx3 + : : :
vanishes
a0 = 0¸ = ¸1 = ¸2 > j¸3j
subdominant eigenvectors
Subdominant Eigenvectors
University ofUniversity ofBritish ColumbiaBritish Columbia
Loop schemeOnly one ring is necessary – matrix of K+1 rows
Compute eigenvectors (left l & right x)
Get coefficients from projection
Example:Tangents
),( Pla ii =
35
University ofUniversity ofBritish ColumbiaBritish Columbia
c p0p6p4
p5
p3p2
c
p6
p0
p1p2
p3
p5
p4
p1
Eigenvalue 0left and right vector are different
lcenter0 = d
d=3
3+ 8k®
li0 =8
3d®; i = 0 : : :K ¡ 1
Example: Limit Position
a0 = dc+8
3d®Xi
pi
University ofUniversity ofBritish ColumbiaBritish Columbia
Subdivision Drawbacks
Not always intuitiveCan have artifactsHard to control
36
University ofUniversity ofBritish ColumbiaBritish Columbia
Properties
Works best on regular connectivity (valence 6)Easy to implement
Efficiency is another matterUse Eigen-analysis for exact computation
Local support – operations depend on local data Order does not matterData structure support
Allow LOD View mesh at any level as control mesh
Apply geometric modifications
ContinuousScheme dependent
University ofUniversity ofBritish ColumbiaBritish Columbia
Geri’s Game