A Simple Class of Non-Linear Subdivision Schemes Scott Schaefer - - PowerPoint PPT Presentation
A Simple Class of Non-Linear Subdivision Schemes Scott Schaefer - - PowerPoint PPT Presentation
A Simple Class of Non-Linear Subdivision Schemes Scott Schaefer Etienne Vouga Ron Goldman Subdivision Set of rules S that recursively act on a shape p 0 1 k k p S p Converges to a smooth shape Subdivision
Subdivision
Set of rules S that recursively act on a shape p0 Converges to a smooth shape
k k
p S p
1
Subdivision
Set of rules S that recursively act on a shape p0 Converges to a smooth shape
p S p
Linear Subdivision
Locally can be written as matrix multiplication
pk+1 = M pk
Usually reproduce polynomials Easy to analyze
Sufficient conditions of continuity based on
eigen-structure of M [Reif 95]
Includes Catmull-Clark, Loop, Butterfly, etc…
Non-linear Subdivision
Greater expression
Reproduce non-polynomial functions circles [Sabin et al. 2005] p(x)el(x) [Micchelli 1996] Preserve convexity [Floater et al. 1998] Subdivision curves on manifolds
[Noakes 1998, Wallner et al. 2005]
Hard to analyze smoothness
Contributions
Provide a simple class of non-linear
subdivision schemes
Easy to analyze smoothness Modification of linear subdivision schemes Can reproduce interesting functions:
trigonometrics, gaussians
Applications to intersection calculations
Linear Subdivision Example
Uniform B-splines [Lane, Reisenfeld 1980]
Doubling followed by mid-point averaging Smoothness: Cn-1 (n = # of averaging steps) Piecewise polynomial
Linear Subdivision Example
Uniform B-splines [Lane, Reisenfeld 1980]
Doubling followed by mid-point averaging Smoothness: Cn-1 (n = # of averaging steps) Piecewise polynomial
x 2 x 2 x 2 x 2
Linear Subdivision Example
Uniform B-splines [Lane, Reisenfeld 1980]
Doubling followed by mid-point averaging Smoothness: Cn-1 (n = # of averaging steps) Piecewise polynomial
Linear Subdivision Example
Uniform B-splines [Lane, Reisenfeld 1980]
Doubling followed by mid-point averaging Smoothness: Cn-1 (n = # of averaging steps) Piecewise polynomial
Linear Subdivision Example
Uniform B-splines [Lane, Reisenfeld 1980]
Doubling followed by mid-point averaging Smoothness: Cn-1 (n = # of averaging steps) Piecewise polynomial
Linear Subdivision Example
Uniform B-splines [Lane, Reisenfeld 1980]
Doubling followed by mid-point averaging Smoothness: Cn-1 (n = # of averaging steps) Piecewise polynomial
Linear Subdivision Example
Uniform B-splines [Lane, Reisenfeld 1980]
Doubling followed by mid-point averaging Smoothness: Cn-1 (n = # of averaging steps) Piecewise polynomial
Linear Subdivision Example
Uniform B-splines [Lane, Reisenfeld 1980]
Doubling followed by mid-point averaging Smoothness: Cn-1 (n = # of averaging steps) Piecewise polynomial
Linear Subdivision Example
Uniform B-splines [Lane, Reisenfeld 1980]
Doubling followed by mid-point averaging Smoothness: Cn-1 (n = # of averaging steps) Piecewise polynomial
Linear Subdivision Example
Uniform B-splines [Lane, Reisenfeld 1980]
Doubling followed by mid-point averaging Smoothness: Cn-1 (n = # of averaging steps) Piecewise polynomial
Linear Subdivision Example
Uniform B-splines [Lane, Reisenfeld 1980]
Doubling followed by mid-point averaging Smoothness: Cn-1 (n = # of averaging steps) Piecewise polynomial
Linear Subdivision Example
Uniform B-splines [Lane, Reisenfeld 1980]
Doubling followed by mid-point averaging Smoothness: Cn-1 (n = # of averaging steps) Piecewise polynomial
Simple Non-Linear Subdivision
Replace mid-point with geometric mean Is the curve smooth? What functions does this method reproduce?
ab b a 2
Simple Non-Linear Subdivision
Replace mid-point with geometric mean Is the curve smooth? What functions does this method reproduce?
ab b a 2
x 2 x 2 x 2 x 2
Simple Non-Linear Subdivision
Replace mid-point with geometric mean Is the curve smooth? What functions does this method reproduce?
ab b a 2
Simple Non-Linear Subdivision
Replace mid-point with geometric mean Is the curve smooth? What functions does this method reproduce?
ab b a 2
Simple Non-Linear Subdivision
Replace mid-point with geometric mean Is the curve smooth? What functions does this method reproduce?
ab b a 2
Simple Non-Linear Subdivision
Replace mid-point with geometric mean Is the curve smooth? What functions does this method reproduce?
ab b a 2
Simple Non-Linear Subdivision
Replace mid-point with geometric mean Is the curve smooth? What functions does this method reproduce?
ab b a 2
Simple Non-Linear Subdivision
Replace mid-point with geometric mean Is the curve smooth? What functions does this method reproduce?
ab b a 2
Simple Non-Linear Subdivision
Replace mid-point with geometric mean Is the curve smooth? What functions does this method reproduce?
ab b a 2
Simple Non-Linear Subdivision
Replace mid-point with geometric mean Is the curve smooth? What functions does this method reproduce?
ab b a 2
Simple Non-Linear Subdivision
Replace mid-point with geometric mean Is the curve smooth? What functions does this method reproduce?
ab b a 2
Simple Non-Linear Subdivision
Replace mid-point with geometric mean Is the curve smooth? What functions does this method reproduce?
ab b a 2
Functional Equations
Find parametric midpoint of a function F Example: L(x) = m x + b
)) ( ), ( ( 2
1 1
x F x F G x x F 2 ) ( ) ( 2
1 1
x L x L x x L
Functional Equations
Find parametric midpoint of a function F Example: L(x) = m x + b
)) ( ), ( ( 2
1 1
x F x F G x x F 2 ) ( ) ( 2
1 1
x L x L x x L
Functional Equations
Find parametric midpoint of a function F Example: L(x) = m x + b
)) ( ), ( ( 2
1 1
x F x F G x x F 2 ) ( ) ( 2
1 1
x L x L x x L
Functional Equations
Find parametric midpoint of a function F Example: L(x) = m x + b
)) ( ), ( ( 2
1 1
x F x F G x x F 2 ) ( ) ( 2
1 1
x L x L x x L
Functional Equations
Find parametric midpoint of a function F Example: L(x) = m x + b
)) ( ), ( ( 2
1 1
x F x F G x x F 2 ) ( ) ( 2
1 1
x L x L x x L
Functional Equations
Find parametric midpoint of a function F Example: L(x) = m x + b
)) ( ), ( ( 2
1 1
x F x F G x x F 2 ) ( ) ( 2
1 1
x L x L x x L
Functional Equations
Find parametric midpoint of a function F Example: F(x) = em x + b
)) ( ), ( ( 2
1 1
x F x F G x x F ) ( ) ( 2
1 1
x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = em x + b
)) ( ), ( ( 2
1 1
x F x F G x x F ) ( ) ( 2
1 1
x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = em x + b
)) ( ), ( ( 2
1 1
x F x F G x x F ) ( ) ( 2
1 1
x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = em x + b
)) ( ), ( ( 2
1 1
x F x F G x x F ) ( ) ( 2
1 1
x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = em x + b
)) ( ), ( ( 2
1 1
x F x F G x x F ) ( ) ( 2
1 1
x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = em x + b
)) ( ), ( ( 2
1 1
x F x F G x x F ) ( ) ( 2
1 1
x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = cos(m x+b)
)) ( ), ( ( 2
1 1
x F x F G x x F 2 )) ( 1 ))( ( 1 ( )) ( 1 ))( ( 1 ( 2
1 1 1
x F x F x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = cos(m x+b)
)) ( ), ( ( 2
1 1
x F x F G x x F 2 )) ( 1 ))( ( 1 ( )) ( 1 ))( ( 1 ( 2
1 1 1
x F x F x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = cos(m x+b)
)) ( ), ( ( 2
1 1
x F x F G x x F 2 )) ( 1 ))( ( 1 ( )) ( 1 ))( ( 1 ( 2
1 1 1
x F x F x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = cos(m x+b)
)) ( ), ( ( 2
1 1
x F x F G x x F 2 )) ( 1 ))( ( 1 ( )) ( 1 ))( ( 1 ( 2
1 1 1
x F x F x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = cos(m x+b)
)) ( ), ( ( 2
1 1
x F x F G x x F 2 )) ( 1 ))( ( 1 ( )) ( 1 ))( ( 1 ( 2
1 1 1
x F x F x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = cos(m x+b)
)) ( ), ( ( 2
1 1
x F x F G x x F 2 )) ( 1 ))( ( 1 ( )) ( 1 ))( ( 1 ( 2
1 1 1
x F x F x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = cos(m x+b)
)) ( ), ( ( 2
1 1
x F x F G x x F 2 )) ( 1 ))( ( 1 ( )) ( 1 ))( ( 1 ( 2
1 1 1
x F x F x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = cos(m x+b)
)) ( ), ( ( 2
1 1
x F x F G x x F 2 )) ( 1 ))( ( 1 ( )) ( 1 ))( ( 1 ( 2
1 1 1
x F x F x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = cos(m x+b)
)) ( ), ( ( 2
1 1
x F x F G x x F 2 )) ( 1 ))( ( 1 ( )) ( 1 ))( ( 1 ( 2
1 1 1
x F x F x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = cos(m x+b)
)) ( ), ( ( 2
1 1
x F x F G x x F 2 )) ( 1 ))( ( 1 ( )) ( 1 ))( ( 1 ( 2
1 1 1
x F x F x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = cos(m x+b)
)) ( ), ( ( 2
1 1
x F x F G x x F 2 )) ( 1 ))( ( 1 ( )) ( 1 ))( ( 1 ( 2
1 1 1
x F x F x F x F x x F
Functional Equations
Find parametric midpoint of a function F Example: F(x) = cos(m x+b)
)) ( ), ( ( 2
1 1
x F x F G x x F 2 )) ( 1 ))( ( 1 ( )) ( 1 ))( ( 1 ( 2
1 1 1
x F x F x F x F x x F
Other Averaging Rules
x x F ) (
2
) ( x x F
x
x F
1
) (
2
1
) (
x
x F ) cosh( ) ( x x F
2 ) ( ) ( 2
2 1 2 1
) (
x F x F x x
F
2 ) ( ) ( 2 / )) ( ) ( (( 2
1 1 1
) (
x F x F x F x F x x
F
2 / )) ( ) ( ( ) ( ) ( 2
1 1 1
) (
x F x F x F x F x x
F
2 / ) ) ( ) ( ( ) ( ) ( 2
2 1 2 1 1
) (
x F x F x F x F x x
F
2 ) 1 ) ( )( 1 ) ( ( ) 1 ) ( )( 1 ) ( ( 2
1 1 1
) (
x F x F x F x F x x
F
Function Averaging Rule
Non-linear Maps
Given
F: 1-1 function on S: subdivision scheme
Then
1
ˆ
F S F S
p F p F S p p S ˆ
1
ˆ
F S F S
n
R
Non-linear Maps
Given
F: 1-1 function on
: subdivision scheme
Then
1 2 S
S S S
d
1 1 1 2 1
ˆ
F S F F S F F S F S
d
1
ˆ
F S F S
n
R
Non-linear Maps Example
1 1 1 2 1
ˆ
F S F F S F F S F S
d
2 1
1
) (
j j
p p j i
p S
2
) (
1
j
p p S
j
) ( ) ( ˆ
2 ) ( ) ( 1
1 1 1
j j
p F p F j i
F p S
))
( ( ) ( ˆ
2
1 1
j
p F F p S
j
Lane-Reisenfeld
) (x F
2 1
1
) (
j j
p p j i
p S
2
) (
1
j
p p S
j 1 1
) ( ˆ
j j j i
p p p S
2
) ( ˆ
1
j
p p S
j
Lane-Reisenfeld
x
e x F ) (
Non-linear Maps Example
1 1 1 2 1
ˆ
F S F F S F F S F S
d
Smoothness and Interpolation
Given
F: 1-1 function on S: subdivision scheme
Then
&
S:interpolatory :interpolatory
) , min(
: ) ˆ ( ˆ : : ) (
n k n k
C p S C F C p S
1
ˆ
F S F S
S ˆ
n
R
Example
Four-Point [Dyn et al. 1987]
Example
Four-Point [Dyn et al. 1987]
16 9 16 9 16 1 16 1
Example
Four-Point [Dyn et al. 1987]
Example
Four-Point [Dyn et al. 1987]
Example
Four-Point [Dyn et al. 1987]
Example
Four-Point [Dyn et al. 1987]
Example
Four-Point [Dyn et al. 1987] Mobius Transform
Example
Four-Point [Dyn et al. 1987] Mobius Transform
Example
Mobius Transform Four-Point [Dyn et al. 1987]
Example
Four-Point [Dyn et al. 1987] Mobius Transform
Example
Four-Point [Dyn et al. 1987] Mobius Transform
Geometric Properties
Properties: convex-hull, variation diminishing
Linear
z
e z F ) (
Geometric Interpretation
Modify geodesics so that the properties hold
)) ˆ ( ), ˆ ( ( ) ˆ , ˆ (
1 1
Q F P F Dist Q P D
Euclidean
F
1
F
Geometric Interpretation
A set C is convex w.r.t. the geodesics G if the
geodesic connecting any two points in C lies completely within C
Geometric Interpretation
A set C is convex w.r.t. the geodesics G if the
geodesic connecting any two points in C lies completely within C
Geometric Interpretation
A set C is convex w.r.t. the geodesics G if the
geodesic connecting any two points in C lies completely within C
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Intersection
1)
If convex hulls of the control points do not intersect, then the curves do not intersect
2)
If each curve is approximately a straight line, intersect those lines; else subdivide
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Computing Convex Hulls
Non-linear hulls may be curved and difficult
to compute
If is monotonic, we can compute a
simple piecewise linear approximation
) ( ' t F
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Attractors
[Schaefer et al. 2005] showed that curves
generated by subdivision are attractors
Future Work
Other types of averaging rules (non-analytic)
Lofting curve networks
Extensions to surfaces
Extraordinary points