110/27/2015 01:47 graphics ii 91.547 animation introduction and motion control session 6
TRANSCRIPT
104/20/23 04:53
Graphics II 91.547
AnimationIntroduction and Motion Control
Session 6
204/20/23 04:53
Animation
0 Traditional 2D animation- Origins in late 1920s- Flat shading- Illusion of 3D produced by fluidity of characters, use of
perspective, motion of “virtual camera”- Disney animators pioneered major techniques
=“Squash and stretch”=Secondary action=Appeal
304/20/23 04:53
Advantages of Computer Animation
0 Eliminates requirements of building models0 No restriction on camera movement0 Easy inclusion of shading models0 Can introduce physical models
404/20/23 04:53
Animation Taxonomy
0 Representational animation- Rigid objects
=Single, unchanging model for each object- Articulated objects
=Rigid subobjects, connected at joints=Motions generally revolute
- Soft objects=Model is deformed
0 Procedural animation0 Stochastic animation0 Behavioral animation
504/20/23 04:53
Motion Control: Keyframing
In computer graphics animation, keyframe -> key parameter. Therefore selection of the parameter becomes critical in defining appropriate motion.
Interpolating angle Interpolating endpoints
604/20/23 04:53
Motion control of rigid objectsParameterization of position
Rigid Objects
Articulated Objects
Soft Objects
Position
Orientation
704/20/23 04:53
Spline-driven Position Animation
Q(u)
Equal arc length, s
Equal u
804/20/23 04:53
Arclength Parameterization of Splines
s A u ( )
Eval. Eval.Spline
su A s 1( )
u
s
Evaluate numerically
(arc length along spline)
Spline parameter
s
x,y,z
904/20/23 04:53
Arclength Parameterization of Splines
s A u
Q u Q A s
ds dx dy dz
dsdx
du
dy
du
dz
dudu
s udx
du
dy
du
dz
dudu
u
u
( )
( ) ( ( ))
( )
( )
1
2 2 2
2 2 2
2 2 2
0
12
12
12
Arclength along spline:
Q u( )
Q u du( )
z
x
y
dx
dy
dz
Integrating gives:
1004/20/23 04:53
Arclength Parameterization of SplinesQ u au bu cu d
x u a u b u c u d
y u a u b u c u d
z u a u b u c u d
s u Au Bu Cu Du E du
A a a a
B a b a b a b
C a c a c a
x x x x
y y y y
z z z z
u
u
x y x
x x y y z z
x x y y
( )
( )
( )
( )
( ) ( )
( )
( )
(
3 2
3 2
3 2
3 2
4 3
0
2
2 2 2
12
9
12
6 z z x y x
x x y y z z
x y x
c b b b
D b c b c b c
E c c c
) ( )
( )
4
4
2 2 2
2 2 2
General form ofCubic Spline:
Taking the derivativesand integrating:
Where:
This function will not integrate analytically, so integration must bedone numerically.
1104/20/23 04:53
Forward Differencing Approach to Evaluating A
ui
ui1
ui2
ui3
di1
di2
di3
s u s n u d
d Q u Q u
ii
n
i i i
( ) ( )
( ) ( )
1
1
Where:
Q s( )
1204/20/23 04:53
Ease-in, ease-out motionArc length no longer proportional to time
Q(t)
Equal t
1304/20/23 04:53
Velocity Curves
t
s
Velocity Curve
V t u s u( ( ), ( ))
V t u s u
t a u b u c u d
s a u b u c u do
( ( ), ( ))
0
30
20
13
12
1 1
t
u
BisectionSearch
Eval.Cubict
us
1404/20/23 04:53
Velocity Curves
s3
Q u( )
Position Splinet
s
1
2 V t u s u( ( ), ( ))
Velocity Curve
1504/20/23 04:53
Velocity Curves
Q u( )
Position Spline
t
s
Velocity Curve
Equal timeIntervals
GentleAccelerationfrom Rest
Gentle decelerationto Rest
1604/20/23 04:53
General Kinetic Control(Steketee & Badler 1985)
0 “Position Spline”- Let the motion parameter to be interpolated be . is
specified at n key values, . The position spline is constructed by assigning a keyframe number to each key value and interpolating through the resulting tuples:
0 “Kinetic Spline”- Each keyframe number is assigned a time. The kinetic
spline interpolates through the resulting pairs:
0 1 1, ,..., n
( , ),( , ),...,( , ) 0 1 10 1 1n n
( , ), ( , ), ..., ( , )0 1 10 1 1t t n tn
1704/20/23 04:53
Parameterization of Orientation:Euler Angles
x
y
z
x
y
z
x
y
z
1 0 0 0
0 0
0 0
0 0 0 1
1 1
1 1
cos sin
sin cos
Transformation:
cos sin
sin cos
2 2
2 2
0 0
0 1 0 0
0 0
0 0 0 1
cos sin
sin cos
3 3
3 3
0 0
0 0
0 0 1 0
0 0 0 1
Transformation: Transformation:
12
3
1804/20/23 04:53
Multiple Ways to Define Rotation withEuler Angles
cos cos cos sin sin
sin sin cos cos sin sin sin sin cos cos sin cos
cos sin cos sin sin cos sin sin sin cos cos sin
2 3 2 3 2
1 2 3 1 3 1 2 3 1 3 1 2
1 2 3 1 3 1 2 3 1 3 1 2
0
0
0
0 0 0 1
Rx -> Ry -> Rz
Rx -> Rz -> RyRy -> Rx -> RzRy -> Rz -> RxRz -> Rx -> RyRz -> Ry -> Rx
Possible Orderings:
1904/20/23 04:53
Problems with Euler Angle Parameterization:Gimbal Lock
x
y
z
1
x
y
z
2 2
x
y
z
x’
3 1 now has same effect as
3
Selecting arotation about y removes a degree of freedom.
2004/20/23 04:53
Problems with Euler Angle Parameterization:Interpolation
y
x
z
y
x
z
X roll
2104/20/23 04:53
Problems with Euler Angle Parameterization:Interpolation
y
x
z
y
x
z
y
x
z
2204/20/23 04:53
Problems with Euler Angle Parameterization:Interpolation
R R t R t
R R t t R
( , , ),..., ( , , ),..., ( , , ) [ , ]
( , , ),..., ( , , ),..., ( , , )
0 0 0 0 0 0 0 0 1
0 0 0 0 0
Picture from p. 359
Case 1:
Case 2:
Generating Interpolated Orientations:
Case 1 Case 2
2304/20/23 04:53
Alternate Approach to ParameterizingArbitrary Orientation
R R( , , ) ( , ) 1 2 3 n
Replace Euler angles with a single angle of rotation about
an axial direction defined by the unit vector, n.
r Rr
n
Rr r n(n r) n r (cos ) ( cos ) (sin ) 1
2404/20/23 04:53
Quaternions
i
j
k
A quaternion is made up of a scalarplus a vector:
q a b c d i j k
We use the notation: q s
s a
b c d
q q s s s s
q s
qq q s
( , )
( , )
( , )
v
v i j k
v v v v v v
v
v
where:
1 2 1 2 1 2 1 2 2 1 1 2
2 2 2
Multiplication isdefined:
2504/20/23 04:53
Quaternions
Take a pure quaternion (one that has no scalar part): p ( , )0 r
And a unit quaternion: q (cos ,(sin ) ) n n where: 1
Define: R p qpq qpq qq ( ) 1 (for of unit magnitude)
R p
R p
q
q
( ) ( ,(cos sin ) sin ) cos sin
( ) ( , (cos ) ( cos ) ) (sin ) )
0 2 2
0 2 1 2 2
2 2 2
r n(n r n r
r n(n r n r
(cos , sin ) ( , ) (cos , sin ) ( , ') 2 2 2 20 0n r n r
r n r' ( , )R r
2604/20/23 04:53
Moving in and out of Quaternion Space
q
Z XY WZ XZ WY
XY WZ X Z YZ WX
XZ WY YZ WX X Y
(cos ,(sin ) ) n (W,(X,Y,Z))
1- 2Y2 2 2 2 2 2 0
2 2 1 2 2 2 2 0
2 2 2 2 1 2 2 0
0 0 0 1
2
2 2
2 2
Converts to the transformation matrix:
The quaternion:
M M M
M M M
M M M
00 01 02
10 11 12
20 21 22
0
0
0
0 0 0 1
W
MMZ
W
MMY
W
MMX
MMMW
4
4
4
)1(2
1
0110
2002
1221
21
221100
2704/20/23 04:53
Interpolating Between Two Quaternions
interp( , , )sin( )
sin
sin
sinq q u q
uq
u1 2 1 2
1
q q1 2 cosWhere:
2804/20/23 04:53
Interpolating Examples
2904/20/23 04:53
Interpolating Examples, contd.
Pictures from page 367