Title: Fractal Mountains, Splines, and Subdivision Surfaces
1Fractal Mountains, Splines, and Subdivision
Surfaces
- Jordan Smith
- UC Berkeley
- CS184
2Outline
- Fractal Mountains
- Review Bézier Curves
- Bsplines and Blossoming
- Subdivision Curves
- Subdivision Surfaces
- Quad mesh (Catmull-Clark scheme)
- Triangle mesh (Loop scheme)
3Fractals
- Self-similar recursive modeling operators
Sierpinski Triangle
Koch Snowflake
4Linear Fractal Mountains
Gen 0
Gen 1
Gen 2
Gen 3
- 2 step recursive process
- Subdivide chain by creating edge midpoints
- Randomly perturb midpoint positions
5Fractal Mountain Surfaces
Gen 0
Gen 1
Gen 2
- 2 step recursive process
- Subdivide triangles at edge midpoints
- Randomly perturb midpoint positions
6Fractal Mountains Summary
- 2 step recursive process
- Topological split at edge midpoints
- Random perturbation of midpoint positions
- Triangle topological split maintains a water
tight connected mesh
7Outline
- Fractal Mountains
- Review Bézier Curves
- Bsplines and Blossoming
- Subdivision Curves
- Subdivision Surfaces
- Quad mesh (Catmull-Clark scheme)
- Triangle mesh (Loop scheme)
8Review of Bézier CurvesDeCastlejau Algorithm
V2
V3
V1
V4
Insert at t ¾
9Review of Bézier CurvesDeCastlejau Algorithm
001
011
111
Insert at t ¾
000
10Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
00¾
¾11
111
Insert at t ¾
000
11Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
0¾¾
00¾
¾¾1
¾11
111
Insert at t ¾
000
12Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
0¾¾
00¾
¾¾¾
¾¾1
¾11
111
Insert at t ¾
000
13Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
0¾¾
00¾
¾¾¾
¾¾1
¾11
111
Insert at t ¾
000
14Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
0¾¾
00¾
¾¾¾
¾¾1
¾11
111
Insert at t ¾
000
15Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
0¾¾
00¾
¾¾¾
¾¾1
¾11
111
Insert at t ¾
000
16Bézier Curves Summary
- DeCastlejau algorithm
- Evaluate Position(t) and Tangent(t)
- Subdivides the curve into 2 subcurves with
independent control polygons - Subdivision of Bézier curves and convex hull
property allows for - Adaptive rendering based on a flatness criterion
- Adaptive collision detection using line segment
tests
17Outline
- Fractal Mountains
- Review Bézier Curves
- Bsplines and Blossoming
- Subdivision Curves
- Subdivision Surfaces
- Quad mesh (Catmull-Clark scheme)
- Triangle mesh (Loop scheme)
18Blossoming of Bsplines
234
345
456
123
Knots
0
1
7
6
5
4
3
2
19(No Transcript)
20Blossoming of Bsplines
234
345
33.54
33.53.5
3.53.54
233.5
3.545
456
123
Knots
0
1
7
6
5
4
3
2
3.5
21Blossoming of Bsplines
234
345
33.54
33.53.5
3.53.54
3.53.53.5
233.5
3.545
456
123
Knots
0
1
7
6
5
4
3
2
3.5
22Bspline Blossoming Summary
- Blossoming of Bsplines is a generalization of the
DeCastlejau algorithm - Control point index triples on the same control
line share 2 indices with each other - Inserting a knot (t value)
- Adds a new control point and curve segment
- Adjusts other control points to form a control
polygon - Inserting the same t value reduces the parametric
continuity of the curve - A control point triple with all 3 indices equal
is a point on the Bspline curve
23Bézier is a specific Bspline
234
345
456
123
Knots
0
1
7
6
5
4
3
2
24Bézier is a specific Bspline
234
345
334
344
444
333
445
233
456
123
Knots
0
1
7
6
5
4
3
2
25Bézier / Bspline Summary
- Bézier curves are a specific instance of
non-uniform Bspline curves - Knot vector is 0,0,0,0,1,1,1,1
- First and last control point are on the curve
- C0 continuity at first and last control point
26Outline
- Fractal Mountains
- Review Bézier Curves
- Bsplines and Blossoming
- Subdivision Curves
- Subdivision Surfaces
- Quad mesh (Catmull-Clark scheme)
- Triangle mesh (Loop scheme)
27Subdivision Curves
V20
V30
V40
V10
- Subdivision is a recursive 2 step process
- Topological split
- Local averaging / smoothing
28Subdivision Curves
E20
V20
V30
E10
E30
V40
V10
E40
- Subdivision is a repeated 2 step process
- Topological split
- Local averaging / smoothing
29Subdivision Curves
E21
V20
V30
V21
V31
E11
E31
V41
V11
V40
V10
E41
- Subdivision is a repeated 2 step process
- Topological split
- Local averaging / smoothing
30Subdivision Curves
E21
V20
V30
V21
V31
E11
E31
V41
V11
V40
V10
E41
- Subdivision is a repeated 2 step process
- Topological split
- Local averaging / smoothing
31Subdivision Curves
E21
V20
V30
V21
V31
E11
E31
V41
V11
V40
V10
E41
- Subdivision is a repeated 2 step process
- Topological split
- Local averaging / smoothing
32Subdivision of Bspline Curves
234
341
123
412
Knots
4
1
3
2
1
4
3
2
4
33Subdivision of Bspline Curves
33.54
2.534
344.5
234
341
233.5
3.541
3.544.5
2.533.5
44.51
22.53
4.511.5
1.522.5
411.5
1.523
123
4.512
412
11.52
122.5
Knots
4
1
3
2
1
4
3
2
4
34Averaging Rules
Vi1
Vi-11
33.54
2.534
344.5
Vi11
234
341
Vi2
233.5
3.541
3.544.5
2.533.5
Vi2 Vi1
Vi-11
44.51
22.53
411.5
4.511.5
1.522.5
1.523
Vi11
123
4.512
412
11.52
122.5
35Subdivision Curve Summary
- Subdivsion is a recursive 2 step process
- Topological linear split at midpoints
- One local averaging / smoothing operator applied
to all points - Double the number of vertices at each step
- Subdivision curves are nothing new
- Averaging rules chosen so that they are simply
uniform Bspline curves
36Outline
- Fractal Mountains
- Review Bézier Curves
- Bsplines and Blossoming
- Subdivision Curves
- Subdivision Surfaces
- Quad mesh (Catmull-Clark scheme)
- Triangle mesh (Loop scheme)
37Subdivision Overview
Control Mesh
Topological Split
Averaging
- Subdivision is a two part process
- Topological split
- Local averaging / smoothing
38Subdivision Overview
Control Mesh
Generation 1
Generation 2
Generation 3
- Repeated uniform subdivisions of the control mesh
converge to the limit surface - Stationary schemes (averaging mask does not
change) - Limit position and normal from Eigen analysis
39Outline
- Fractal Mountains
- Review Bézier Curves
- Bsplines and Blossoming
- Subdivision Curves
- Subdivision Surfaces
- Quad mesh (Catmull-Clark scheme)
- Triangle mesh (Loop scheme)
40Bspline Surfaces
- A single Bspline surface patch is controlled by a
regular 4x4 grid of control points
41Bspline Surfaces
- 2 adjacent patches share 12 control points and
meet with C2 continuity
42Bspline Surfaces
- Requires a regular rectangular control mesh grid
to guarantee continuity (all valence 4 vertices!) - Subdivision can be performed by knot insertion
(i.e. blossoming)
43Catmull-Clark Subdivision Surfaces
- Smooth surfaces over arbitrary topology control
meshes - Closed control mesh ? closed limit surface
- Quad mesh generalization of Bsplines
- C1 at non-valence 4 vertices
- C2 every where else (Bsplines)
- Sharp corners can be tagged
- Allows for smooth and sharp features
- Allows for non-closed meshes
44Catmull-Clark Subdivision
Gen 0
Gen 1
Gen 2
- Extraordinary vertices are generated by
non-valence 4 vertices and faces in the input
mesh - No more extraordinary vertices are created after
the first generation of subdivision
45Catmull-Clark Averaging
46Outline
- Fractal Mountains
- Review Bézier Curves
- Bsplines and Blossoming
- Subdivision Curves
- Subdivision Surfaces
- Quad mesh (Catmull-Clark scheme)
- Triangle mesh (Loop scheme)
47Loop Subdivision Surfaces
Gen 0
Gen 1
Gen 2
48Conclusion
- Subdivision is a 2 step recursive process
- Topological split
- Local averaging / smoothing