Title: Computer Animation Algorithms and Techniques
1Computer AnimationAlgorithms and Techniques
Interpolating Values
2Animation
Animator specified interpolation key
frame Algorithmically controlled Physics-based B
ehavioral Data-driven motion capture
3Motivation
Common problem given a set of points Smoothly
(in time and space) move an object through the
set of points
Example additional temporal constraints From
zero velocity at first point, smoothly accelerate
until time t1, hold a constant velocity until
time t2, then smoothly decelerate to a stop at
the last point at time t3
4Motivation solution steps
1. Construct a space curve that interpolates the
given points with piecewise first order continuity
pP(u)
2. Construct an arc-length-parametric-value
function for the curve
uU(s)
3. Construct time-arc-length function according
to given constraints
sS(t)
pP(U(S(t)))
5Interpolating function
Interpolation v. approximation Complexity
cubic Continuity first degree (tangential) Local
v. global control local Information
requirements tangents needed?
6Interpolation v. Approximation
7Complexity
Low complexity reduced computational cost
Point of Inflection Can match arbitrary tangents
at end points
CUBIC polynomial
8Continuity
9Local v. Global Control
10Information requirements
just the points
tangents
interior control points
just beginning and ending tangents
11Curve Formulations
Lagrange Polynomial
Piecewise cubic polynomials Hermite Catmull-Rom Bl
ended Parabolas Bezier B-spline Tension-Continuity
-Bias 4-Point Form
12Lagrange Polynomial
13Polynomial Curve Formulations
Need to match real-world data v. design from
scratch Information requirements just points?
tangents? Qualities of final curve? Intuitive
enough? Other shape controls?
Blending Functions
Algebraic coefficient matrix
Geometric information
Coefficient matrix
14Hermite
15Cubic Bezier
Interior control points play the same role as the
tangents of the Hermite formulation
16Blended Parabolas/Catmull-Rom
End conditions are handled differently
17Controlling Motion along pP(u)
Step 2. Reparameterization by arc length
u U(s) where s is distance along the curve
Step 3. Speed control
for example, ease-in / ease-out
s ease(t) where t is time
18Reparameterizing by Arc Length
Analytic Forward differencing Supersampling Adap
tive approach Numerically Adaptive Gaussian
19Reparameterizing by Arc Length - analytic
Cant always be solved analytically for our
curves
20Reparameterizing by Arc Length - supersample
- Calculate a bunch of points at small increments
in u - Compute summed linear distances as approximation
to arc length - Build table of (parametric value, arc length)
pairs
- Notes
- Often useful to normalize total distance to 1.0
- Often useful to normalize parametric value for
multi-segment curve to 1.0
21Build table of approx. lengths
22Adaptive Approach How fine to sample?
Compare successive approximations and see if they
agree within some tolerance
Test can fail subdivide to predefined level,
then start testing
23Reparameterizing by Arc Length - quadrature
Lookup tables of weights and parametric values
Can also take adaptive approach here
24Reparameterizing by Arc Length
Analytic Forward differencing Supersampling Adap
tive approach Numerically Adaptive Gaussian
Sufficient for many problems
25Speed Control
distance
Time-distance function Ease-in Cubic
polynomial Sinusoidal segment Segmented
sinusoidal Constant acceleration General
distance-time functions
time
26Time Distance Function
S
s
s S(t)
t
27Ease-in/Ease-out Function
S
s
1.0
s S(t)
0.0
t
1.0
0.0
Normalize distance and time to 1.0 to facilitate
reuse
28Ease-in Sinusoidal
29Ease-in Piecewise Sinusoidal
30Ease-in Piecewise Sinusoidal
Provides linear (constant velocity) middle segment
31Ease-in Single Cubic
32Ease-in Constant Acceleration
33Ease-in Constant Acceleration
34Ease-in Constant Acceleration
35Ease-in Constant Acceleration
36Arbitrary Speed Control
Animators can work in Distance-time space
curves Velocity-time space curves Acceleration-t
ime space curves Set time-distance
constraints etc.
37Curve fitting to distance-time pairs
38Working with time-distance curves
39Interpolating distance-time pairs
40Frenet Frame control orientation
41Frenet Frame tangent curvature vector
42Frenet Frame tangent curvature vector
43Frenet Frame tangent curvature vector
44Frenet Frame local coordinate system
- Directly control orientation of object/camera
- Use for direction and bank into turn, especially
for ground-planar curves (e.g. roads)
45Frenet Frame - undefined
46Frenet Frame - discontinuity
47Other ways to control orientation
Use auxiliary curve to define direction or up
vector
Use point P(sds) for direction
48Direction Up vector
To keep head up, use y-axis to compute over and
up vectors perpendicular to direction vector
v u x w
w
If up vector supplied, use instead of y-axis
uw x y-axis
Direction vector
49Orientation interpolation
- Preliminary note
- Remember that
- Affects of scale are divided out by the inverse
appearing in quaternion rotation - When interpolating quaternions, use UNIT
quaternions otherwise magnitudes can interfere
with spacing of results of interpolation
50Orientation interpolation
Quaternions can be interpolated to produce
in-between orientations
- 2 problems analogous to issues when interpolating
positions - How to take equi-distant steps along orientation
path? - How to pass through orientations smoothly (1st
order continuous)
3. And another particular to quaternions with
dual unit quaternion representations, which to
use?
51Dual representation
Dual unit quaternion representations
For Interpolation between q1 and q2, compute
cosine between q1 and q2 and between q1 and q2
choose smallest angle
52Interpolating quaternions
Unit quaternions form set of points on 4D sphere
Linearly interpolating unit quaternions not
equally spaced
53Interpolating quaternions in great arc gt equal
spacing
54Interpolating quaternions
where
- slerp, sphereical linear interpolation is a
function of - the beginning quaternion orientation, q1
- the ending quaternion orientation, q2
- the interpolant, u
55Smooth Orientation interpolation
Use quaternions Interpolate along great arc (in
4-space) using cubic Bezier on sphere 1. Select
representation to use from duals 2. Construct
interior control points for cubic Bezier 3. use
DeCastelajue construction of cubic Bezier
56Smooth quaternion interpolation
Similar to first order continuity desires with
positional interpolation
How to smoothly interpolate through orientations
q1, q2, q3,qn
Bezier interpolation geometric construction
57Bezier interpolation
58Construct interior control points
Bezier interpolation
a0
p1
p2
p0
59Quaternion operators
q2
qb
bisect(q1, q2)
Similar to forming a vector between 2 points,
form the rotation between 2 orientations
q1
q2
double(q1, q2)
Given 2 orientations, form result of applying
rotation between the two to 2nd orientation
q1
qd
60Quaternion operators
p
q
Bisect 2 orientations
61Bezier interpolation
Need quaternion-friendly operators to form
interior control points
62Bezier interpolation
Construct interior control points
Bezier segment qn, an, bn1, qn1
63Bezier construction using quaternion operators
Need quaternion-friendly operations to
interpolate cubic Bezier curve using quaternion
points
de Casteljau geometric construction algorithm
64Bezier construction using quaternion operators
t1slerp(qn, an,1/3) t2slerp(an,
bn1,1/3) t3slerp(bn1, qn1,1/3)
t12slerp(t1, t2,1/3) t23slerp(t12, t23,1/3)
qslerp(t12, t23,1/3)
65Working with paths
Smoothing a path Determining a path along a
surface Finding downhill direction
66Smoothing data
67Smoothing data
68Smoothing data
69Smoothing data
70Smoothing data
71Smoothing data
72Smoothing data
73Smoothing data
74Smoothing data
75Smoothing data
76Smoothing data
77Smoothing data
78Path finding
79Path finding - downhill