Computer Animation Algorithms and Techniques - PowerPoint PPT Presentation

About This Presentation
Title:

Computer Animation Algorithms and Techniques

Description:

Computer Animation Algorithms and Techniques Interpolating Values Bezier construction using quaternion operators Need quaternion-friendly operations to interpolate ... – PowerPoint PPT presentation

Number of Views:206
Avg rating:3.0/5.0
Slides: 83
Provided by: rickp5
Category:

less

Transcript and Presenter's Notes

Title: Computer Animation Algorithms and Techniques


1
Computer AnimationAlgorithms and Techniques
Interpolating Values
2
Animation
Animator specified interpolation key
frame Algorithmically controlled Physics-based B
ehavioral Data-driven motion capture
3
Motivation
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
4
Motivation 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)
sS(t)
3. Construct time-arc-length function according
to given constraints
pP(U(S(t)))
5
Interpolating function
Interpolation v. approximation Complexity
cubic Continuity first degree
(tangential) Local v. global control
local Information requirements tangents needed?
6
Interpolation v. Approximation
7
Complexity
Low complexity reduced computational cost
Point of Inflection Can match arbitrary tangents
at end points
CUBIC polynomial
8
Continuity
9
Local v. Global Control
10
Information requirements
just the points
tangents
interior control points
just beginning and ending tangents
11
Curve Formulations
Lagrange Polynomial
Piecewise cubic polynomials Hermite Catmull-Rom Bl
ended Parabolas Bezier B-spline Tension-Continuity
-Bias 4-Point Form
12
Lagrange Polynomial
13
Lagrange Polynomial
14
Polynomial 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
15
Hermite
16
Cubic Bezier
Interior control points play the same role as the
tangents of the Hermite formulation
17
Blended Parabolas/Catmull-Rom
End conditions are handled differently
18
Controlling 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
19
Reparameterizing by Arc Length
Analytic Forward differencing Supersampling Adap
tive approach Numerically Adaptive Gaussian
20
Reparameterizing by Arc Length - analytic
Cant always be solved analytically for our
curves
21
Reparameterizing by Arc Length - supersample
  1. Calculate a bunch of points at small increments
    in u
  2. Compute summed linear distances as approximation
    to arc length
  3. 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

22
index u Arc Length
0 0.00 0.000
1 0.05 0.080
2 0.10 0.150
3 0.15 0.230
... ... ...
20 1.00 1.000
Build table of approx. lengths
23
Adaptive 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
24
Reparameterizing by Arc Length - quadrature
Lookup tables of weights and parametric values
Can also take adaptive approach here
25
Reparameterizing by Arc Length
Analytic Forward differencing Supersampling Adap
tive approach Numerically Adaptive Gaussian
Sufficient for many problems
26
Speed Control
distance
Time-distance function Ease-in Cubic
polynomial Sinusoidal segment Segmented
sinusoidal Constant acceleration General
distance-time functions
time
27
Time Distance Function
S
s
s S(t)
t
28
Ease-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
29
Ease-in Sinusoidal
30
Ease-in Piecewise Sinusoidal
31
Ease-in Piecewise Sinusoidal
where
Provides linear (constant velocity) middle segment
32
Ease-in Single Cubic
33
Ease-in Constant Acceleration
34
Ease-in Constant Acceleration
35
Ease-in Constant Acceleration
36
Ease-in Constant Acceleration
37
Constant Acceleration
38
Motivation 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)
sS(t)
3. Construct time-arc-length function according
to given constraints
pP(U(S(t)))
39
Arbitrary Speed Control
Animators can work in Distance-time space
curves Velocity-time space curves Acceleration
-time space curves Set time-distance
constraints etc.
40
Curve fitting to distance-time pairs
41
Working with time-distance curves
42
Interpolating distance-time pairs
43
Frenet Frame control orientation
44
Frenet Frame tangent curvature vector
45
Frenet Frame tangent curvature vector
46
Frenet Frame tangent curvature vector
47
Frenet Frame local coordinate system
  • Directly control orientation of object/camera
  • v is perpendicular to w if curve is parameterized
    by arclength otherwise probably not
    perpendicular
  • For general curve must
  • v wxu
  • Use for direction and bank into turn, especially
    for ground-planar curves (e.g. roads)

48
Frenet Frame - undefined
49
Frenet Frame - discontinuity
50
Other ways to control orientation
Use auxiliary curve to define direction or up
vector
Use point P(sds) for direction
51
Direction 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 that instead of y-axis
uw x y-axis
Direction vector
52
Orientation 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

53
Orientation 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?
54
Dual 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
55
Interpolating quaternions
Unit quaternions form set of points on 4D sphere
Linearly interpolating unit quaternions not
equally spaced
56
Interpolating quaternions in great arc gt equal
spacing
57
Interpolating quaternions with equal spacing
where
  • slerp, sphereical linear interpolation is a
    function of
  • the beginning quaternion orientation, q1
  • the ending quaternion orientation, q2
  • the interpolant, u

58
Smooth 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
59
Smooth 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
60
Bezier interpolation
61
Construct interior control points
Bezier interpolation
bn
pn
pn
pn-1
an
pn-1
an
pn2
pn2
pn1
pn1
pn
pn-1
an
pn2
pn1
p1
p2
tn1
p0
62
Quaternion 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
63
Quaternion operators
Given p and q, form r
Double where q is the mid-orientation between
p and the yet-to-be-determined r
If p and q are unit quaternions, Then q
cos(q)q and cos(q)
Given p and r, form q
Bisect 2 orientations if p and r are unit length
64
Bezier interpolation
Need quaternion-friendly operators to form
interior control points
65
Bezier interpolation
Construct interior control points
pn
pn-1
pn2
pn
pn1
pn-1
an
pn2
pn1
pn
pn-1
an
pn2
Bezier segment qn, an, bn1, qn1
pn1
tn1
66
Bezier construction using quaternion operators
Need quaternion-friendly operations to
interpolate cubic Bezier curve using quaternion
points
de Casteljau geometric construction algorithm
67
Bezier construction using quaternion operators
For p(1/3)
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)
68
Working with paths
Smoothing a path Determining a path along a
surface Finding downhill direction
69
Smoothing data
70
Smoothing data
71
Smoothing data
72
Smoothing data
73
Smoothing data
74
Smoothing data
75
Smoothing data
76
Smoothing data
77
Smoothing data
78
Smoothing data
79
Smoothing data
80
Smoothing data
81
Path finding
82
Path finding - downhill
Write a Comment
User Comments (0)
About PowerShow.com