CPSC 441: Keyframe AnimationSmooth Curves Cont' - PowerPoint PPT Presentation

1 / 91
About This Presentation
Title:

CPSC 441: Keyframe AnimationSmooth Curves Cont'

Description:

What is the relationship between Bezier control points and de Boor points? ... First specify 4 vertices (de Boor points), then one per segment. B splines properties ... – PowerPoint PPT presentation

Number of Views:39
Avg rating:3.0/5.0
Slides: 92
Provided by: jch63
Category:

less

Transcript and Presenter's Notes

Title: CPSC 441: Keyframe AnimationSmooth Curves Cont'


1
CPSC 441 Keyframe Animation/Smooth Curves
(Cont.)
  • Jinxiang Chai

2
Key-frame Interpolation
  • Given parameter values at key frames, how to
    interpolate parameter values for inbetween frames.

?
t
3
Key-frame Interpolation
  • Given parameter values at key frames, how to
    interpolate parameter values for inbetween frames.

?
t
4
Key-frame Interpolation
  • Given parameter values at key frames, how to
    interpolate parameter values for inbetween frames.

?
t
Nonlinear interpolation
5
Review Natural cubic cruves
6
Review Natural cubic cruves
7
Review Natural cubic cruves
8
Review Natural cubic curves
9
Review Hermite Curves
P1 start position P4 end position R1 start
derivative R4 end derivative
10
Review Hermite Curves
11
Review Hermite Curves
Herminte basis matrix
12
Review Hermite Curves
Herminte basis matrix
13
Review Hermite Curves
14
Review Hermite Curves
15
Review Hermite Curves
16
Review Hermite Curves
17
Review Hermite Curves
Hermite basis functions
18
Review Hermite Curves
basis function 1
basis function 1
basis function 1
basis function 1
19
Review Hermite Curves
R1
R4
P1
P4




20
Review Bezier Curves
21
Review Bezier Curves
22
Review Bezier Curves
23
Review Bezier Curves
24
Review Bezier Curves
v2
v3
v1
v0




25
Computer animation
  • Animation
  • - making objects moving
  • Compute animation
  • - the production of consecutive images, which,
    when displayed, convey a feeling of motion.

26
Review Different basis functions
  • Cubic curves
  • Hermite curves
  • Bezier curves

27
Complex curves
  • Suppose we want to draw a more complex curve

28
Complex curves
  • Suppose we want to draw a more complex curve

How can we represent this curve?
29
Complex curves
  • Suppose we want to draw a more complex curve
  • Idea well splice together a curve from
    individual segments that are cubic Béziers

30
Complex curves
  • Suppose we want to draw a more complex curve
  • Idea well splice together a curve from
    individual segments that are cubic Béziers

31
Splines
  • A piecewise polynomial that has a locally very
    simple form, yet be globally flexible and smooth

32
Splines
  • There are three nice properties of splines wed
    like to have
  • - Continuity
  • - Local control
  • - Interpolation

33
Continuity
  • C0 points coincide, velocities dont
  • C1 points and velocities coincide
  • Whats C2?
  • - points, velocities and accelerations coincide

34
Continuity
  • Cubic curves are continuous and differentiable
  • We only need to worry about the derivatives at
    the endpoints when two curves meet

35
Local control
  • Wed like our spline to have local control
  • - that is, have each control point affect some
    well-defined neighborhood around that point

36
Local control
  • Wed like our spline to have local control
  • - that is, have each control point affect some
    well-defined neighborhood around that point

37
Local control
  • Wed like our spline to have local control
  • - that is, have each control point affect some
    well-defined neighborhood around that point

38
Interpolation
  • Bézier curves are approximating
  • - The curve does not (necessarily) pass
    through all the control points
  • - Each point pulls the curve toward it, but
    other points are pulling as well
  • Instead, we may prefer a spline that is
    interpolating
  • - That is, that always passes through every
    control point

39
B-splines
  • We can join multiple Bezier curves to create
    B-splines
  • Ensure C2 continuity when two curves meet

40
Derivatives at end points
41
Derivatives at end points
42
Derivatives at end points
43
Derivatives at end points
44
Derivatives at end points
45
Derivatives at end points
46
Continuity in B splines
  • Suppose we want to join two Bezier curves (V0,
    V1, V2,V3) and (W0, W1, W2, W3) so that C2
    continuity is met at the joint

47
Continuity in B splines
  • Suppose we want to join two Bezier curves (V0,
    V1, V2,V3) and (W0, W1, W2, W3) so that C2
    continuity is met at the joint

48
Continuity in B splines
  • Suppose we want to join two Bezier curves (V0,
    V1, V2,V3) and (W0, W1, W2, W3) so that C2
    continuity is met at the joint

49
Continuity in B splines
  • Suppose we want to join two Bezier curves (V0,
    V1, V2,V3) and (W0, W1, W2, W3) so that C2
    continuity is met at the joint

50
Continuity in B splines
  • Suppose we want to join two Bezier curves (V0,
    V1, V2,V3) and (W0, W1, W2, W3) so that C2
    continuity is met at the joint

51
Continuity in B splines
  • Suppose we want to join two Bezier curves (V0,
    V1, V2,V3) and (W0, W1, W2, W3) so that C2
    continuity is met at the joint

52
Continuity in B splines
  • What does this derived equation mean
    geometrically?
  • - What is the relationship between a, b and c,
    if a 2b - c?

w2v14v3-4v2
53
de Boor points
  • Instead of specifying the Bezier control points,
    lets specify the corners of the frames that
    forms a B-spline
  • These points are called de Boor points and the
    frames are called A-frames

54
de Boor points
  • What is the relationship between Bezier control
    points and de Boor points?

Verify this by yourself!
55
B spline basis matrix
56
Building complex splines
  • Constraining a Bezier curve made of many segments
    to be C2 continuous is a lot of work
  • - for each new segment we have to add 3 new
    control point
  • - only one of the control points is really
    free
  • B-splines are easier (and C2)
  • - First specify 4 vertices (de Boor points),
    then one per segment

57
B splines properties
  • v Continuity
  • v Local control
  • x Interpolation

58
Catmull-Rom splines
  • If we are willing to sacrifice C2 continuity, we
    can get interpolation and local control.
  • If we set each derivative to be a constant
    multiple of the vector between the previous and
    the next controls, we get a Catmull-Rom spline

59
Catmull-Rom splines
60
Catmull-Rom splines
The segment is controlled by p1,p2,p3,p4
0.5
61
Catmull-Rom splines
The segment is controlled by p1,p2,p3,p4
62
Catmull-Rom splines
  • The effect of t how sharply the curve bends at
    the control points

63
Catmull-Rom splines
The segment is controlled by p1,p2,p3,p4
64
Catmull-Rom splines
From Hermite curves
65
Catmull-Rom splines
From Hermite curves
66
Catmull-Rom splines
From Hermite curves
67
Catmull-Rom splines
68
Catmull-Rom splines
69
Catmull-Rom splines
What do we miss?
70
Catmull-Rom splines
?
?
71
Catmull-Rom splines
72
Catmull-Rom splines
  • Catmull-Rom splines have C1 continuity (not C2
    continuity)
  • Do not lie within the convex hull of their
    control points.

73
Catmull-Rom splines
  • Catmull-Rom splines have C1 continuity (not C2
    continuity)
  • Do not lie within the convex hull of their
    control points.

74
Catmull-Rom splines properties
  • X Continuity (C2)
  • v Local control
  • v Interpolation

75
Curves in the animation
  • Interpolate each parameter separately
  • Each animation parameter is described by a 2D
    curve
  • Q(u) (x(u), y(u))
  • Treat this curve as
  • ?(u) y(u)
  • t(u) x(u)
  • where ? is a variable you want to animate. We can
  • think of the results as a function ?(t)

?(u)
t(u)
u
u
76
Keyframing interpolation
  • is a two-step algorithm
  • - Compute the spline parameter u corresponding
    to the time t

x(u)
u
77
Keyframing interpolation
  • is a two-step algorithm
  • - Compute the spline parameter u corresponding
    to the time t
  • how to evaluate the inverse function?

78
Keyframing interpolation
  • is a two-step algorithm
  • Compute the spline parameter u corresponding to
    the time t
  • how to evaluate the inverse function?
  • - linear function easy (tu)
  • - complex function finite difference or
    numerically root finding

79
Keyframing interpolation
  • is a two-step algorithm
  • Compute the spline parameter u corresponding to
    the time t
  • how to evaluate the inverse function?
  • - linear function easy
  • - complex function finite difference or
    numerically root finding
  • Compute the ? corresponding to the spline
    parameter u
  • ? y(u)

y(u)
u
80
Outline
  • Process of keyframing
  • Key frame interpolation
  • Hermite and bezier curve
  • Splines
  • Speed control

81
Spline parameterization
  • The spline is parameterized by u (0ltult1) and
    not by time t.

82
Spline parameterization
  • The spline is parameterized by u (0ltult1) and
    not by time t.
  • Hard to deal with the questions like
  • What is the location of point p at time t
  • What is the velocity of point p at time t
  • What is the acceleration a of a point p at time t

83
Spline parameterization
  • Solution reparameterize the curve in terms of t
  • - express spline as a function of the arc
    length s ug(s)
  • - express the arc length s as a function of t
    sf(t)

84
Speed control
  • Simplest form is to have constant velocity along
    the path

sf(t)
85
Arc-length reparameterization
  • Now we want a way to find u given a particular
    arclength s ug(f(t)
  • Not possible analytically for most curves (e.g.
    B-splines)

86
Finite difference
  • Sample the curve at small intervals of the
    parameter and determine the distance between
    samples
  • Use theses distances to build a table of
    arclength for this particular curve (ui,si)

Whats parametric value for the arc length .08?
87
Finite difference
  • Sample the curve at small intervals of the
    parameter and determine the distance between
    samples
  • Use theses distances to build a table of
    arclength for this particular curve (ui,si)

88
Finite difference
  • Sample the curve at small intervals of the
    parameter and determine the distance between
    samples
  • Use theses distances to build a table of
    arclength for this particular curve (ui,si)

Whats parametric value for the arc length .08?
89
Finite difference
  • Sample the curve at small intervals of the
    parameter and determine the distance between
    samples
  • Use theses distances to build a table of
    arclength for this particular curve (ui,si)

Whats parametric value for the arc length .08?
90
Finite difference
  • Sample the curve at small intervals of the
    parameter and determine the distance between
    samples
  • Use theses distances to build a table of
    arclength for this particular curve (ui,si)

Whats parametric value for the arc length .05? A
linear interpolation of 0.00 and 0.05
91
Speed control recipe
  • Given a time t, lookup the corresponding
    arclength S in the speed curve
  • For S, look up the corresponding value of u in
    the reparameterization table
  • Evaluate the curve at u to obtain the correct
    interpolated position for the animated object for
    the given time t
Write a Comment
User Comments (0)
About PowerShow.com