Title: Curves and Surfaces
1Curves and Surfaces
CS 230
2Curves
- Curves are one dimensional entities where the
function is nonlinear
Curves
3Curves
- Modeling computer graphics element with curves
requires specialized handles that manage the look
of a curve in an intuitive way - In addition, seaming curves to build models is
also important, for example changing complexity
in the middle of a curve (Maya makes it trivial)
4Representations for curves
- Parametric representation
- x x(u), y y(u) or simply p(u) where p
- More robust and general than other forms
- Gives better control over curves and surfaces
- Notation
- p(u) c0 c1u c2u2
- where each c is a vector, ci
x y
cix ciy
5Representations for curves
- Example, quadric parametric curve
- p(u) c0 c1u c2u2
- Like curve
- x 3u2
- y 2u 3
- for u -1,1
- c0 c1 c2
0 3
0 2
3 0
Note, more coefficients than a quadratic
6Representations for curves
- Parametric curve, p(u) can as easily represent a
curve in 3D (x,y,z) - Simply
- x fx(u)
- y fy(u)
- z fz(u)
- Quadric coefs become
- c0 c1 c2
cox coy coz
c2x c2y c2z
c1x c1y c1z
7Parametric Cubic (pc) curves
- Extension of quadrics to cubics
- Represented as
-
- Also called Hermite curves after
- the 17th century mathematician
p(u) c0 c1u c2u2 c3u3
8Parametric Cubic (pc) curves
- Algebraic form
- (Note,unless otherwise specified u goes
from 0,1) - Not very intuitive, 12 values of c
- Instead want a better specify the curve
- More intuitive control by start point p(0) and
ending point p(1) and their derivatives
p(u) c0 c1u c2u2 c3u3
9Parametric Cubic (pc) curves
- From
- Build a geometric form in order to specify a
curves by their end points and tangents -
-
p(u) c0 c1u c2u2 c3u3
p(1)
p(1)
p(0)
p(0)
10Parametric Cubic curves
- This leads to the Geometric Form
-
- where
- F1(u) 2u3 3u2 1
- F2(u) -2u3 3u2
- F3(u) u3 2u2 u
- F4(u) u3 u2
p(u) F1(u)p(0) F2(u)p(1) F3(u)p(0)
F4(u)p(1)
11Hermite curves basis
12Joining Multiple Segments
use p p3 p4 p5 p6T
use p p0 p1 p2 p3T
Get continuity at join points but not continuity
of derivatives C0, C1, C2 continuity
13Bezier Curves
- Family of curves developed in the 1970's by
Bezier, a engineer for Renault, car manufacturer - Bezier's curves are only guaranteed to pass
through the end points, but other control points
controlled the derivative at the end points - Specifically, the tangent was controlled by the
next control point in, the 2nd derivative by the
second control point in, and the nth derivative
by the nth and so on...
14Bezier Curves
15Bezier Curves
- The general form of the Bezier curve is
- Vertices p control the curve and blending
functions, fi(u), that satisfy the "derivative"
condition - Bernstein polynomials were a family of functions
that were chosen by Bezier to satisfy his needs,
these are not the only functions that could be
used though
n
p(u) S pi fi(u) 0 lt u lt 1
i0
16Convex Hull Property
- The properties of the Bernstein polynomials
ensure that all Bezier curves lie in the convex
hull of their control points - Hence, even though we do not reach all the input
data, we cannot be too far away
p1
p2
convex hull
Bezier curve
p3
p0
17Bernstein Polynomials
- The blending functions are a special case of the
Bernstein polynomials - These polynomials give the blending polynomials
for any degree Bezier form - All zeros at 0 and 1
- For any degree they all sum to 1
- They are all between 0 and 1 inside (0,1)
18Bezier Matrix
- For a curve where n 3, p is defined as
- p(u) (1-u)2p0 2u(1-u)p1 u2p2
-
p(u) uTMBp b(u)Tp
blending functions
19Bezier Curves
- p(u) (1-u)2p0 2u(1-u)p1 u2p2
-
p2
p1
p0
20n 3
n 5
n 4
n 6
21Bezier Curves
Bezier curves have intuitive control, are nicely
formed, convex hull of all points
22B Splines
- One problem with the curves we have looked at is
that changing a single control point affects the
whole curve (this is called global propogation,)
- Also, depends on of control pts
- B-Splines offer an alternative, to only affect
the local region if a single control point is
modified (i.e. local propogation)
23B Splines
- B-splines are also called Basis Splines
- They have a form similar to Bezier, B-splines are
defined as - where n 1 is the number of control points and
k controls the degree of the blending (or basis)
functions
n
p(u) S pi fi,k(u) 0 lt u lt n 2 - k
i0
24B Splines
- B-splines' blending functions are defined
recursively - fi,1(u) 1 if ti lt u lt ti1
- 0 otherwise
- and
- fi,m(u)
- m goes from 2 to k
- ti's are knot points relating u to control
points, pi
(u - ti) fi,m-1(u)
(u - ti m) fi1,m-1(u)
_
tim-1 - ti
tim - ti1
25B Splines
- Knot points,ti's, follow along like this
- ti 0 if i lt k
- ti i - k 1 if k lt i lt n
- ti n- k 2 if i gt n
26B Splines
- For 6 control pts k 1,
- n 5 and 0 lt u lt 6
- We get the degenerate case
- p(u) p0 0 lt u lt 1
- p(u) p1 1 lt u lt 2
- p(u) p2 2 lt u lt 3
- p(u) p3 3 lt u lt 4
- p(u) p4 4 lt u lt 5
- p(u) p5 5 lt u lt 6
27B Splines
28B Splines
- For 6 control pts k 2,
- n 5 and 0 lt u lt 5
- We get a linear average of neighbors
- p(u) (1 - u)p0 u p1 0 lt u lt 1
- p(u) (2 - u)p1 (u - 1)p2 1 lt u lt 2
- p(u) (3 - u)p2 (u - 2)p3 2 lt u lt 3
- p(u) (4 - u)p3 (u - 3)p4 3 lt u lt 4
- p(u) (5 - u)p4 (u - 4)p5 4 lt u lt 5
-
29B Splines
30B Splines
- For 6 control pts k 3,
- n 5 and 0 lt u lt 4
- We get
- for 0 lt u lt 1
- p1(u) (1 - u)2p0 .5u(4 - 3u) p1 .5
u2p2 - for 1 lt u lt 2
- p2(u) .5(2 - u)2p1 .5(-2u2 6u - 3) p2
.5(u - 1)2p3 - for 2 lt u lt 3
- p3(u) .5(3 - u)2p2 .5(-2u2 10u - 11) p3
.5(u - 2)2p4 - for 3 lt u lt 4
- p4(u) .5(4 - u)2p3 .5(-3u2 20u - 32) p4
(u - 3)2p5 -
31B Splines
- Note, influence grows with degree
k 2 k 3 k 4
32B Splines
- Thus, local influence of control points on
- curve as
33Cubic B-spline
p(u) uTMSp b(u)Tp
34Curves vs. Surfaces
- Curves are one dimensional entities where the
function is nonlinear - Surfaces are formed from two-dimensional
functions - Linear functions give planes and polygons
y
x
Curves
z
Surfaces
35Curves vs. Surfaces
- Parametric curve, p(u) can as easily represent a
curve in 3D (x,y,z) -
- x fx(u)
- y fy(u)
- z fz(u)
u 1
u -1
36Curves vs. Surfaces
- Parametric surface is very similar
- p(u,v)
- Simply
- x f(u, v)
- y f(u, v)
- z f(u, v)
(Just, more difficult to comprehend in a 2D
representation, we must go behind the image
plane)
37Parametric Surfaces
- Surfaces require 2 parameters
- xx(u,v)
- yy(u,v)
- zz(u,v)
- p(u,v) x(u,v), y(u,v), z(u,v)T
- Want same properties as curves
- Smoothness
- Differentiability
- Ease of evaluation
y
p(u,1)
p(0,v)
p(1,v)
x
p(u,0)
z
38Bezier Patches
Using same data array Ppij as with
interpolating form
Patch lies in convex hull
39B-Spline Patches
defined region
40Rendering Curves
- How do we draw the curve, given p(u)?
- void evaluateCurve(u,pixelX,pixelY)
p(1)
p(1)
tangent
tangent
p(0)
p(0)
41Rendering Curves
p(1)
piecewise linear discrete approximation
p(0)
42Splitting a Cubic Bezier
p0, p1 , p2 , p3 determine a cubic Bezier
polynomial and its convex hull
Consider left half l(u) and right half r(u)
43l(u) and r(u)
Since l(u) and r(u) are Bezier curves, we should
be able to find two sets of control points l0,
l1, l2, l3 and r0, r1, r2, r3 that determine
them
44Efficient Form
l0 p0 r3 p3 l1 ½(p0 p1) r1 ½(p2
p3) l2 ½(l1 ½( p1 p2)) r1 ½(r2 ½( p1
p2)) l3 r0 ½(l2 r1)
Requires only shifts and adds!
45Surfaces
- Can apply the recursive method to surfaces if we
recall that for a Bezier patch curves of constant
u (or v) are Bezier curves in u (or v) - First subdivide in u
- Process creates new points
- Some of the original points are discarded
original and discarded
original and kept
new
46Second Subdivision
16 final points for 1 of 4 patches created
47Normals
- We can differentiate with respect to u and v to
obtain the normal at any point p
47
48Utah Teapot
- Most famous data set in computer graphics
- Widely available as a list of 306 3D vertices and
the indices that define 32 Bezier patches