Professional Documents
Culture Documents
Thomas Funkhouser
Princeton University
COS 426, Spring 2004 Each
Eachhas
hasdifferent
differentblending
blendingfunctions
functions
resulting
resultingin
indifferent
differentproperties
properties
V3 V2 1
V3 V2
V4 V4
0
V0 V1 V2 V3 V4 V5 u
V5 V5
V3 V2 V3 V2
1
b− 0 (u ) = a0u 3 + b0 u 2 + c0 u1 + d 0
b-1 b-2
b−1 (u ) = a1u 3 + b1u 2 + c1u1 + d1
b-0 V4 V4
b-3
b− 2 (u ) = a2 u 3 + b2 u 2 + c2u 1 + d 2
0
V5 V5
1
B-Spline Blending Functions B-Spline Blending Functions
• C2 continuity implies 15 constraints V0
Position of two curves same
Derivative of two curves same V1
Second derivatives same
V3 V2
V4
V5
−1 3 − 3 1 V0
1 3 −6 3
Q ( u ) = (u u 1)
3 2
0 V1
u
6 −3 0 3 0 V2
1 4 1 0 V3
V0 V1 V2 V3 V4 V5 u
0
0
0
0
V5 V5
1 1
2
Curved Surfaces Curved Surfaces
• Motivation • What makes a good surface representation?
Exact boundary representation for some objects Accurate
More concise representation than polygonal mesh Concise
Intuitive specification
Local support
Affine invariant
Arbitrary topology
Guaranteed continuity
Natural parameterization
Efficient display
Efficient intersections
• Implicit surfaces
• Example: ellipsoid
x = rx cos φ cos θ
y = ry cos φ sin θ
z = rz sin φ
u
• Problem:
Need piecewise-parametrics surfaces to describe
complex shapes Same ideas as parametric splines!
FvDFH Figure 11.42 Watt Figure 6.25
3
Parametric Patches Parametric Patches
• Each patch is defined by blending control points • Point Q(u,v) on the patch is the tensor product of
parametric curves defined by the control points
Q(u,v)
Q(0,1)
Q(1,1)
Q(0,0)
Q(1,0)
2 0 2 0
1 2 1 0
6 3 6
Where M is a matrix describing the blending functions
for a parametric cubic curve (e.g., Bezier, B-spline, etc.)
Watt Figure 6.28
−1 3 − 3 1
M Bezier = 3 − 6 3 0
−3 3 0 0
1 0 0 0
4
Bezier Surfaces Bezier Surfaces
• Continuity constraints are similar to the ones for • C0 continuity requires aligning boundary curves
Bezier splines
DrawSurface(void)
DrawSurface(void)
{{
for
for (int
(int ii == 0;
0; ii << imax;
imax; i++)
i++) {{
float
float uu == umin
umin ++ ii ** ustep;
ustep;
for
for (int
(int jj == 0;
0; jj << jmax;
jmax; j++)
j++) {{
float
float vv == vmin
vmin ++ jj ** vstep;
vstep;
DrawQuadrilateral(...);
DrawQuadrilateral(...);
}}
}}
}}
5
Parametric Surfaces Curved Surface Representations
• Advantages: • Polygonal meshes
Easy to enumerate points on surface
• Subdivision surfaces
Possible to describe complex shapes
• Disadvantages:
Hard to describe specific complex shapes
Hard to enumerate points on surface
6
Summary
Subdivision
Parametric
Polygonal
Implicit
Surface
Surface
Surface
Mesh
Feature
Accurate No Yes Yes Yes
Concise No Yes Yes Yes
Intuitive specification No No Yes No
Local support Yes No Yes Yes
Affine invariant Yes Yes Yes Yes
Arbitrary topology Yes No No Yes
Guaranteed continuity No Yes Yes Yes
Natural parameterization No No Yes No
Efficient display Yes No Yes Yes
Efficient intersections No Yes No No