Title: Subdivision Curves
1Subdivision Curves Surfaces and Fractal
Mountains.
2Outline
- Review Bézier Curves
- Subdivision Curves
- Subdivision Surfaces
- Quad mesh (Catmull-Clark scheme)
- Triangle mesh (Loop scheme)
- Fractal Mountains
3Review of Bézier CurvesDeCastlejau Algorithm
V2
V3
V1
V4
Insert at t ¾
4Review of Bézier CurvesDeCastlejau Algorithm
001
011
Ignore funny notation at vertices! ( CS 284
stuff )
111
Insert at t ¾
000
5Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
00¾
¾11
111
Insert at t ¾
000
6Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
0¾¾
00¾
¾¾1
¾11
111
Insert at t ¾
000
7Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
0¾¾
00¾
¾¾¾
¾¾1
¾11
111
Insert at t ¾
000
8Review of Bézier CurvesDeCastlejau Algorithm
001
011
0¾1
0¾¾
00¾
¾¾¾
¾¾1
¾11
Curve position and tangent for t ¾
111
Insert at t ¾
000
9Subdivision of Bézier Curves
001
011
0¾1
0¾¾
00¾
¾¾¾
¾¾1
¾11
This also yields all control points for
subdivision into 2 Bezier curves
111
Insert at t ¾
000
10Subdivision of Bézier Curves
001
011
0¾1
0¾¾
00¾
¾¾¾
¾¾1
¾11
Convex Hull Property!
111
Insert at t ¾
000
11Bézier Curves Summary
- DeCastlejau algorithm is good for
- Evaluating position(t) and tangent(t),
- Subdividing the curve into 2 subcurves with
their own control polygons. - Subdivision of Bézier curves and their convex
hull property allows for - Adaptive rendering based on a flatness criterion,
- Adaptive collision detection using line segment
tests.
12Outline
- Review Bézier Curves
- Subdivision Curves
- Subdivision Surfaces
- Quad mesh (Catmull-Clark scheme)
- Triangle mesh (Loop scheme)
- Fractal Mountains
13Subdivision Curves
V20
V30
An approximating scheme
Limit curve
V40
V10
- Subdivision is a recursive 2 step process
- Topological split
- Local averaging / smoothing
14Subdivision Curves
E20
V20
V30
E10
E30
V40
V10
E40
- Subdivision is a repeated 2 step process
- Topological split
- Local averaging / smoothing
15Subdivision 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
16Subdivision 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
17Subdivision 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
18Results in a B-spline Curve
Knots
4
1
3
2
1
4
3
2
4
19Subdivision Curve Summary
- Subdivsion is a recursive 2 step process
- Topological split at midpoints,
- Local averaging/smoothing operator applied.
- Doubles the number of vertices at each step
- Subdivision curves are nothing new
- Suitable averaging rules can yield uniform
B-spline curves.
20Outline
- Review Bézier Curves
- Subdivision Curves
- Subdivision Surfaces
- Quad mesh (Catmull-Clark scheme)
- Triangle mesh (Loop scheme)
- Fractal Mountains
21Subdivision Overview
Control Mesh
Topological Split
Averaging
Limit Surface
- Subdivision is a two part process
- Topological split
- Local averaging / smoothing
22Subdivision Overview
Control Mesh
Generation 1
Generation 2
Generation 3
- Repeated uniform subdivisions of the control mesh
converge to the limit surface. - Limit surface can be calculated in closed form
for stationary schemes (averaging mask does not
change).
23Outline
- Review Bézier Curves
- Subdivision Curves
- Subdivision Surfaces
- Quad mesh (Catmull-Clark scheme)
- Triangle mesh (Loop scheme)
- Fractal Mountains
24B-spline Surfaces
- A cubic B-spline surface patch is controlled by a
regular 4x4 grid of control points
25B-spline Surfaces
- 2 adjacent patches share 12 control points and
meet with C2 continuity
26B-spline Surfaces
- Requires a regular rectangular control mesh grid
and all valence-4 vertices to guarantee
continuity.
27Catmull-Clark Subdivision Surface
- Yields smooth surfaces over arbitrary topology
control meshes. - Closed control mesh ? closed limit surface.
- Quad mesh generalization of B-splines
- C1 at non-valence-4 vertices,
- C2 everywhere else (B-splines).
- Also Sharp corners can be tagged
- Allows for smooth and sharp features,
- Allows for non-closed meshes.
28Catmull-Clark Subdivision
Gen 0
Gen 1
Gen 2
- Extraordinary vertices are generated by
non-valence-4 vertices and faces in the input
mesh. - No additional extraordinary vertices are created
after the first generation of subdivision.
29Catmull-Clark Averaging
(simple averaging)
n valence
30Outline
- Review Bézier Curves
- Subdivision Curves
- Subdivision Surfaces
- Quad mesh (Catmull-Clark scheme)
- Triangle mesh (Loop scheme)
- Fractal Mountains
31Loop Subdivision Surface
Gen 0
Gen 1
Gen 2
n valence
32Summary
- Subdivision is a 2 step recursive process
- Topological split,
- Local averaging / smoothing.
- It is an easy way to make smooth objects
- of irregular shape
- of topologies other than rectangular (torus).
33Outline
- Review Bézier Curves
- Subdivision Curves
- Subdivision Surfaces
- Quad mesh (Catmull-Clark scheme)
- Triangle mesh (Loop scheme)
- Fractal Mountains
34Fractals
- Self-similar recursive modeling operators
Sierpinski Triangle
Koch Snowflake
35Linear Fractal Mountains
Gen 0
Gen 1
Gen 2
Gen 3
- 2-step recursive process
- Subdivide chain by creating edge midpoints,
- Randomly perturb midpoint positions(proportional
to subdivided edge length).
36Fractal Mountain Surfaces
Gen 0
Gen 1
Gen 2
- 2-step recursive process
- Subdivide triangles at edge midpoints,
- Randomly perturb midpoint positions.
37Fractal 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. - Useful to make uneven, natural terrain.
- Often a low-order subdivision is good enough to
control terrain-following vehicles.