Upload
maude-caren-cox
View
224
Download
0
Tags:
Embed Size (px)
Citation preview
Subdivision Curves & Surfaces and Fractal Mountains.
CS184 – Spring 2011
Outline
• Review Bézier Curves
• Subdivision Curves
• Subdivision Surfaces– Quad mesh (Catmull-Clark scheme)– Triangle mesh (Loop scheme)
• Fractal Mountains
Review of Bézier CurvesDeCastlejau Algorithm
V2
V4V1
V3
Insert at t = ¾
Review of Bézier CurvesDeCastlejau Algorithm
001
000 111
011
Insert at t = ¾
Ignore funny notation at vertices!
(= CS 284 stuff )
Review of Bézier CurvesDeCastlejau Algorithm
001
000 111
011
00¾
¾11
0¾1
Insert at t = ¾
Review of Bézier CurvesDeCastlejau Algorithm
001
000 111
011
00¾
¾¾1
¾11
0¾10¾¾
Insert at t = ¾
Review of Bézier CurvesDeCastlejau Algorithm
001
000 111
011
00¾
¾¾1
¾11
0¾10¾¾
¾¾¾
Insert at t = ¾
Review of Bézier CurvesDeCastlejau Algorithm
001
000 111
011
00¾
¾¾1
¾11
0¾10¾¾
¾¾¾
Insert at t = ¾
Curve position and tangent for t = ¾
Subdivision of Bézier Curves001
000 111
011
00¾
¾¾1
¾11
0¾10¾¾
¾¾¾
Insert at t = ¾
This also yields all control points for subdivision into 2 Bezier curves
Subdivision of Bézier Curves001
000 111
011
00¾
¾¾1
¾11
0¾10¾¾
¾¾¾
Insert at t = ¾
Convex Hull Property!
Bé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.
Outline
• Review Bézier Curves
• Subdivision Curves
• Subdivision Surfaces– Quad mesh (Catmull-Clark scheme)– Triangle mesh (Loop scheme)
• Fractal Mountains
Subdivision CurvesV2
0
V40V1
0
V30
• Subdivision is a recursive 2 step process
– Topological split
– Local averaging / smoothing
Limit curve
An approximating scheme
Subdivision CurvesV2
0
V40V1
0
V30
• Subdivision is a repeated 2 step process
– Topological split
– Local averaging / smoothing
E20
E40
E10 E3
0
Subdivision CurvesV2
0
V40V1
0
V30
• Subdivision is a repeated 2 step process
– Topological split
– Local averaging / smoothing
E21
E41
E11 E3
1
V21
V11 V4
1
V31
Subdivision CurvesV2
0
V40V1
0
V30
• Subdivision is a repeated 2 step process
– Topological split
– Local averaging / smoothing
E21
E41
E11 E3
1
V21
V11 V4
1
V31
Subdivision CurvesV2
0
V40V1
0
V30
• Subdivision is a repeated 2 step process
– Topological split
– Local averaging / smoothing
E21
E41
E11 E3
1
V21
V11 V4
1
V31
Results in a B-spline Curve
4 1 321432 4Knots:
Subdivision 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.
Outline
• Review Bézier Curves
• Subdivision Curves
• Subdivision Surfaces– Quad mesh (Catmull-Clark scheme)– Triangle mesh (Loop scheme)
• Fractal Mountains
Subdivision Overview
• Subdivision is a two part process:– Topological split
– Local averaging / smoothing
Control Mesh Topological Split Averaging
Limit Surface
Subdivision Overview
• 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).
Control Mesh Generation 1 Generation 2 Generation 3
Outline
• Review Bézier Curves
• Subdivision Curves
• Subdivision Surfaces:– Quad mesh (Catmull-Clark scheme)– Triangle mesh (Loop scheme)
• Fractal Mountains
B-spline Surfaces
• A cubic B-spline surface patch is controlled by a regular 4x4 grid of control points
B-spline Surfaces
• 2 adjacent patches share 12 control points and meet with C2 continuity
B-spline Surfaces
• Requires a regular rectangular control mesh grid and all valence-4 vertices to guarantee continuity.
Catmull-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.
Catmull-Clark Subdivision
• 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.
Gen 0 Gen 1 Gen 2
Catmull-Clark Averaging
n
Fn1
En1
23)V-(nV
n
1
n
1
ggg0
1g0
∑ ∑= =+
++= i i
ii
V00
V10E1
0
V30
V40
Vn0
V20
C10
F10
En0
E40
E30
E20
Fn0
F40
F30
F20C3
0
C40 Cn
0
C20
4
VCVVF
g1
ggg0g ++++
= iiii
2
VVE
gg0g i
i
+=
(simple averaging)
n = valence
Outline
• Review Bézier Curves
• Subdivision Curves
• Subdivision Surfaces– Quad mesh (Catmull-Clark scheme)– Triangle mesh (Loop scheme)
• Fractal Mountains
Loop Subdivision SurfaceGen 0 Gen 1 Gen 2
2
VVE
gg0g i
i
+=
( )
∑=
+ −+=
+=
n
1
gg0
1g0
2
En
1)1(VV
32
n)/2cos(23
iiaa
aπ
n = valence
Summary
• 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).
Outline
• Review Bézier Curves
• Subdivision Curves
• Subdivision Surfaces– Quad mesh (Catmull-Clark scheme)– Triangle mesh (Loop scheme)
• Fractal Mountains
Fractals• Self-similar recursive modeling operators:
Sierpinski Triangle
Koch Snowflake
Linear Fractal Mountains
• 2-step recursive process:– Subdivide chain by creating edge midpoints,– Randomly perturb midpoint positions
(proportional to subdivided edge length).
Gen 0:
Gen 1:
Gen 2:
Gen 3:
Fractal Mountain Surfaces
• 2-step recursive process:– Subdivide triangles at edge midpoints,– Randomly perturb midpoint positions.
Gen 0 Gen 1 Gen 2
Fractal 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.