Curves and Surfaces - PowerPoint PPT Presentation

1 / 48
About This Presentation
Title:

Curves and Surfaces

Description:

Bezier's curves are only guaranteed to pass through the end points, but other ... We get a linear average of neighbors: p(u) = (1 - u)p0 u p1 0 u 1 ... – PowerPoint PPT presentation

Number of Views:45
Avg rating:3.0/5.0
Slides: 49
Provided by: edan74
Category:
Tags: are | curves | my | neighbors | surfaces | who

less

Transcript and Presenter's Notes

Title: Curves and Surfaces


1
Curves and Surfaces
CS 230
2
Curves
  • Curves are one dimensional entities where the
    function is nonlinear

Curves
3
Curves
  • 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)

4
Representations 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
5
Representations 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
6
Representations 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
7
Parametric 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
8
Parametric 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
9
Parametric 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)
10
Parametric 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)
11
Hermite curves basis
  • F curves

12
Joining 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
13
Bezier 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...

14
Bezier Curves
15
Bezier 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
16
Convex 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
17
Bernstein 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)

18
Bezier 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
19
Bezier Curves
  • p(u) (1-u)2p0 2u(1-u)p1 u2p2

p2
p1
p0
20
n 3
n 5
n 4
n 6
21
Bezier Curves
Bezier curves have intuitive control, are nicely
formed, convex hull of all points
22
B 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)

23
B 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
24
B 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
25
B 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

26
B 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

27
B Splines
28
B 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

29
B Splines
30
B 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

31
B Splines
  • Note, influence grows with degree

k 2 k 3 k 4
32
B Splines
  • Thus, local influence of control points on
  • curve as

33
Cubic B-spline
p(u) uTMSp b(u)Tp
34
Curves 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
35
Curves 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
36
Curves 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)
37
Parametric 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
38
Bezier Patches
Using same data array Ppij as with
interpolating form
Patch lies in convex hull
39
B-Spline Patches
defined region
40
Rendering 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)
41
Rendering Curves
  • Polyline approximation

p(1)
piecewise linear discrete approximation
p(0)
42
Splitting 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)
43
l(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
44
Efficient 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!
45
Surfaces
  • 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
46
Second Subdivision
16 final points for 1 of 4 patches created
47
Normals
  • We can differentiate with respect to u and v to
    obtain the normal at any point p

47
48
Utah 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
Write a Comment
User Comments (0)
About PowerShow.com