Download presentation
Presentation is loading. Please wait.
1
CSCE 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 R1 P4 R4 P1: start position P4: end position R1: start derivative R4: end derivative
10
Review: Hermite Curves
P1 R1 P4 R4
11
Review: Hermite Curves
P1 R1 P4 R4 Herminte basis matrix
12
Review: Hermite Curves
P1 R1 P4 R4 Herminte basis matrix
13
Review: Hermite Curves
P1 R1 P4 R4
14
Review: Hermite Curves
P1 R1 P4 R4
15
Review: Hermite Curves
P1 R1 P4 R4
16
Review: Hermite Curves
P1 R1 P4 R4
17
Review: Hermite Curves
P1 R1 P4 R4 Hermite basis functions
18
Review: Hermite Curves
P1 R1 P4 R4 basis function 1 basis function 1 basis function 1 basis function 1
19
Review: Hermite Curves
P1 R1 P4 R4 *R1 *R4 *P1 + *P4 + + =
20
Review: Bezier Curves
21
Review: Bezier Curves
22
Review: Bezier Curves
23
Review: Bezier Curves
24
Review: Bezier Curves *v1 *v2 *v3 *v0 + + + =
25
Review: Different basis functions
Cubic curves: Hermite curves: Bezier curves:
26
Complex curves Suppose we want to draw or interpolate a more complex curve
27
Complex curves Suppose we want to draw or interpolate a more complex curve How can we represent this curve?
28
Complex curves Suppose we want to draw a more complex curve
Idea: we’ll splice together a curve from individual segments that are cubic Béziers
29
Complex curves Suppose we want to draw or interpolate a more complex curve Idea: we’ll splice together a curve from individual segments that are cubic Béziers
30
Splines A piecewise polynomial that has a locally very simple form, yet be globally flexible and smooth
31
Splines There are three nice properties of splines we’d like to have - Continuity - Local control - Interpolation
32
Continuity C0: points coincide, velocities don’t
C1: points and velocities coincide What’s C2? - points, velocities and accelerations coincide
33
Continuity Cubic curves are continuous and differentiable
We only need to worry about the derivatives at the endpoints when two curves meet
34
Local control We’d like our spline to have local control
- that is, have each control point affect some well-defined neighborhood around that point
35
Local control We’d like our spline to have local control
- that is, have each control point affect some well-defined neighborhood around that point
36
Local control We’d like our spline to have local control
- that is, have each control point affect some well-defined neighborhood around that point
37
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
38
B-splines We can join multiple Bezier curves to create B-splines
Ensure C2 continuity when two curves meet
39
Derivatives at end points
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
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
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
What does this derived equation mean geometrically? - What is the relationship between a, b and c, if a = 2b - c? w2=v1+4v3-4v2
52
de Boor points Instead of specifying the Bezier control points, let’s 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
53
de Boor points What is the relationship between Bezier control points and de Boor points? Verify this by yourself!
54
B spline basis matrix
55
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
56
B splines properties √ Continuity √ Local control x Interpolation
57
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
58
Catmull-Rom splines
59
Catmull-Rom splines The segment is controlled by p1,p2,p3,p4 0.5
60
Catmull-Rom splines The segment is controlled by p1,p2,p3,p4
61
Catmull-Rom splines The effect of t: how sharply the curve bends at the control points
62
Catmull-Rom splines The segment is controlled by p1,p2,p3,p4
63
Catmull-Rom splines From Hermite curves
64
Catmull-Rom splines From Hermite curves
65
Catmull-Rom splines From Hermite curves
66
Catmull-Rom splines
67
Catmull-Rom splines
68
Catmull-Rom splines What do we miss?
69
Catmull-Rom splines ? ?
70
Catmull-Rom splines
71
Catmull-Rom splines Catmull-Rom splines have C1 continuity (not C2 continuity) Do not lie within the convex hull of their control points.
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 properties
X Continuity (C2) √ Local control √ Interpolation
74
Keyframe Interpolation
t=50ms t=0
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 θ = y(u) t = x(u) where θ is a variable you want to animate and t is a time index. We can think of the results as a function: θ(t) θ t u u
76
Keyframing interpolation
is a two-step algorithm: - Compute the spline parameter u corresponding to the time t: 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 (t=u) - 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) 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 (0<=u<=1) and not by time t.
82
Spline parameterization
The spline is parameterized by u (0<=u<=1) 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: u=g(s) - express the arc length s as a function of t: s=f(t)
84
Speed control Simplest form is to have constant velocity along the path s=f(t)
85
Arc-length reparameterization
Now we want a way to find u given a particular arclength s: u=g(f(t)) Not possible analytically for most curves (e.g. B-splines)
86
What’s parametric value for the arc length .08?
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) What’s 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
What’s parametric value for the arc length .08?
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) What’s parametric value for the arc length .08?
89
What’s parametric value for the arc length .08?
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) What’s 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) What’s 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
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.