38
Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Embed Size (px)

DESCRIPTION

Lecture 11 Slide Fall 2003 Debugging Debug all sub-parts as you write them Print as much information as possible Use simple test cases When stuck, use step-by-step debugging

Citation preview

Page 1: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Computer Animation II

OrientationInterpolation

Dynamics

Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Review from ThursdayInterpolation

bull Splines

Articulated bodiesbull 1048708Forward kinematicsbull 1048708Inverse Kinematicsbull 1048708Optimization

bull Gradient descentbull Following the steepest slope

bull Lagrangianmultipliersbull Turn optimization with constraints into no

constraints

Lecture 11 Slide 6837 Fall 2003

DebuggingDebug all sub-parts as you write them

Print as much information as possible

Use simple test cases

When stuck use step-by-step debugging

Lecture 11 Slide 6837 Fall 2003

Grid accelerationDebug all these steps

Sphere rasterization Ray initialization Marching Object insertion Acceleration

Lecture 11 Slide 6837 Fall 2003

Final projectFirst brainstorming session on ThursdayGroups of threeProposal due Monday 1027

A couple of pages Goals Progression

Appointment with staff

Lecture 11 Slide 6837 Fall 2003

Computer-Assisted Animation Keyframingautomate the inbetweeninggood controlless tediouscreating a good animationstill requires considerable skilland talentProcedural animationdescribes the motion algorithmicallyexpress animation as a functionof small number of parameteresExample a clock with second minuteand hour handsbull hands should rotate togetherbull express the clock motions in terms ofa ldquosecondsrdquo variablebull the clock is animated by varying theseconds parameterExample 2 A bouncing ballbullAbs(sin(ωt+θ0))e-kt

Lecture 11 Slide 6837 Fall 2003

Computer-Assisted Animation Physically Based Animation

Assign physical properties to objects (masses forces inertial properties) Simulate physics by solving equations Realistic but difficult to control

Motion Capture

Captures style subtle nuances and realism You must observe someone do something

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Interpolating Orientations in 3-DRotation matrices

Given rotation matrices Mi and time ti find M(t) such that M(ti)=Mi

Lecture 11 Slide 6837 Fall 2003

Flawed SolutionInterpolate each entry independently

Example M0 is identity and M1is 90o around x-axisIs

Is the result a rotation matrix

NO

For example RRTdoes not equal identity

This interpolation does not preserve rigidity

(angles and lengths)

Lecture 11 Slide 6837 Fall 2003

3D rotationsHow many degrees of freedom for 3D orientations

3 degrees of freedom

eg direction of rotation and angle

Or 3 Euler angles

Lecture 11 Slide 6837 Fall 2003

Euler AnglesAn Euler angle is a rotation about a single axis Any

orientation can be described composing three rotation around

each coordinate axis

Roll pitch and yaw

Courtesy of Gernot Hoffmann Used with permission

httpwwwfho-emdende~hoffmanngimbal09082002pdf

Lecture 11 Slide 6837 Fall 2003

Interpolating Euler AnglesNatural orientation representation

angles for 3 degrees of freedomUnnatural interpolationA rotation of 90o first around Z and then around Y

= 120o around (1 1 1)But 30oaround Z then Y

differs from 40o around (1 1 1)

Lecture 11 Slide 6837 Fall 2003

GimballockGimbal lock two or more axis align resulting in a

loss of rotation degrees of freedom

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 2: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Review from ThursdayInterpolation

bull Splines

Articulated bodiesbull 1048708Forward kinematicsbull 1048708Inverse Kinematicsbull 1048708Optimization

bull Gradient descentbull Following the steepest slope

bull Lagrangianmultipliersbull Turn optimization with constraints into no

constraints

Lecture 11 Slide 6837 Fall 2003

DebuggingDebug all sub-parts as you write them

Print as much information as possible

Use simple test cases

When stuck use step-by-step debugging

Lecture 11 Slide 6837 Fall 2003

Grid accelerationDebug all these steps

Sphere rasterization Ray initialization Marching Object insertion Acceleration

Lecture 11 Slide 6837 Fall 2003

Final projectFirst brainstorming session on ThursdayGroups of threeProposal due Monday 1027

A couple of pages Goals Progression

Appointment with staff

Lecture 11 Slide 6837 Fall 2003

Computer-Assisted Animation Keyframingautomate the inbetweeninggood controlless tediouscreating a good animationstill requires considerable skilland talentProcedural animationdescribes the motion algorithmicallyexpress animation as a functionof small number of parameteresExample a clock with second minuteand hour handsbull hands should rotate togetherbull express the clock motions in terms ofa ldquosecondsrdquo variablebull the clock is animated by varying theseconds parameterExample 2 A bouncing ballbullAbs(sin(ωt+θ0))e-kt

Lecture 11 Slide 6837 Fall 2003

Computer-Assisted Animation Physically Based Animation

Assign physical properties to objects (masses forces inertial properties) Simulate physics by solving equations Realistic but difficult to control

Motion Capture

Captures style subtle nuances and realism You must observe someone do something

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Interpolating Orientations in 3-DRotation matrices

Given rotation matrices Mi and time ti find M(t) such that M(ti)=Mi

Lecture 11 Slide 6837 Fall 2003

Flawed SolutionInterpolate each entry independently

Example M0 is identity and M1is 90o around x-axisIs

Is the result a rotation matrix

NO

For example RRTdoes not equal identity

This interpolation does not preserve rigidity

(angles and lengths)

Lecture 11 Slide 6837 Fall 2003

3D rotationsHow many degrees of freedom for 3D orientations

3 degrees of freedom

eg direction of rotation and angle

Or 3 Euler angles

Lecture 11 Slide 6837 Fall 2003

Euler AnglesAn Euler angle is a rotation about a single axis Any

orientation can be described composing three rotation around

each coordinate axis

Roll pitch and yaw

Courtesy of Gernot Hoffmann Used with permission

httpwwwfho-emdende~hoffmanngimbal09082002pdf

Lecture 11 Slide 6837 Fall 2003

Interpolating Euler AnglesNatural orientation representation

angles for 3 degrees of freedomUnnatural interpolationA rotation of 90o first around Z and then around Y

= 120o around (1 1 1)But 30oaround Z then Y

differs from 40o around (1 1 1)

Lecture 11 Slide 6837 Fall 2003

GimballockGimbal lock two or more axis align resulting in a

loss of rotation degrees of freedom

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 3: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

DebuggingDebug all sub-parts as you write them

Print as much information as possible

Use simple test cases

When stuck use step-by-step debugging

Lecture 11 Slide 6837 Fall 2003

Grid accelerationDebug all these steps

Sphere rasterization Ray initialization Marching Object insertion Acceleration

Lecture 11 Slide 6837 Fall 2003

Final projectFirst brainstorming session on ThursdayGroups of threeProposal due Monday 1027

A couple of pages Goals Progression

Appointment with staff

Lecture 11 Slide 6837 Fall 2003

Computer-Assisted Animation Keyframingautomate the inbetweeninggood controlless tediouscreating a good animationstill requires considerable skilland talentProcedural animationdescribes the motion algorithmicallyexpress animation as a functionof small number of parameteresExample a clock with second minuteand hour handsbull hands should rotate togetherbull express the clock motions in terms ofa ldquosecondsrdquo variablebull the clock is animated by varying theseconds parameterExample 2 A bouncing ballbullAbs(sin(ωt+θ0))e-kt

Lecture 11 Slide 6837 Fall 2003

Computer-Assisted Animation Physically Based Animation

Assign physical properties to objects (masses forces inertial properties) Simulate physics by solving equations Realistic but difficult to control

Motion Capture

Captures style subtle nuances and realism You must observe someone do something

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Interpolating Orientations in 3-DRotation matrices

Given rotation matrices Mi and time ti find M(t) such that M(ti)=Mi

Lecture 11 Slide 6837 Fall 2003

Flawed SolutionInterpolate each entry independently

Example M0 is identity and M1is 90o around x-axisIs

Is the result a rotation matrix

NO

For example RRTdoes not equal identity

This interpolation does not preserve rigidity

(angles and lengths)

Lecture 11 Slide 6837 Fall 2003

3D rotationsHow many degrees of freedom for 3D orientations

3 degrees of freedom

eg direction of rotation and angle

Or 3 Euler angles

Lecture 11 Slide 6837 Fall 2003

Euler AnglesAn Euler angle is a rotation about a single axis Any

orientation can be described composing three rotation around

each coordinate axis

Roll pitch and yaw

Courtesy of Gernot Hoffmann Used with permission

httpwwwfho-emdende~hoffmanngimbal09082002pdf

Lecture 11 Slide 6837 Fall 2003

Interpolating Euler AnglesNatural orientation representation

angles for 3 degrees of freedomUnnatural interpolationA rotation of 90o first around Z and then around Y

= 120o around (1 1 1)But 30oaround Z then Y

differs from 40o around (1 1 1)

Lecture 11 Slide 6837 Fall 2003

GimballockGimbal lock two or more axis align resulting in a

loss of rotation degrees of freedom

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 4: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Grid accelerationDebug all these steps

Sphere rasterization Ray initialization Marching Object insertion Acceleration

Lecture 11 Slide 6837 Fall 2003

Final projectFirst brainstorming session on ThursdayGroups of threeProposal due Monday 1027

A couple of pages Goals Progression

Appointment with staff

Lecture 11 Slide 6837 Fall 2003

Computer-Assisted Animation Keyframingautomate the inbetweeninggood controlless tediouscreating a good animationstill requires considerable skilland talentProcedural animationdescribes the motion algorithmicallyexpress animation as a functionof small number of parameteresExample a clock with second minuteand hour handsbull hands should rotate togetherbull express the clock motions in terms ofa ldquosecondsrdquo variablebull the clock is animated by varying theseconds parameterExample 2 A bouncing ballbullAbs(sin(ωt+θ0))e-kt

Lecture 11 Slide 6837 Fall 2003

Computer-Assisted Animation Physically Based Animation

Assign physical properties to objects (masses forces inertial properties) Simulate physics by solving equations Realistic but difficult to control

Motion Capture

Captures style subtle nuances and realism You must observe someone do something

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Interpolating Orientations in 3-DRotation matrices

Given rotation matrices Mi and time ti find M(t) such that M(ti)=Mi

Lecture 11 Slide 6837 Fall 2003

Flawed SolutionInterpolate each entry independently

Example M0 is identity and M1is 90o around x-axisIs

Is the result a rotation matrix

NO

For example RRTdoes not equal identity

This interpolation does not preserve rigidity

(angles and lengths)

Lecture 11 Slide 6837 Fall 2003

3D rotationsHow many degrees of freedom for 3D orientations

3 degrees of freedom

eg direction of rotation and angle

Or 3 Euler angles

Lecture 11 Slide 6837 Fall 2003

Euler AnglesAn Euler angle is a rotation about a single axis Any

orientation can be described composing three rotation around

each coordinate axis

Roll pitch and yaw

Courtesy of Gernot Hoffmann Used with permission

httpwwwfho-emdende~hoffmanngimbal09082002pdf

Lecture 11 Slide 6837 Fall 2003

Interpolating Euler AnglesNatural orientation representation

angles for 3 degrees of freedomUnnatural interpolationA rotation of 90o first around Z and then around Y

= 120o around (1 1 1)But 30oaround Z then Y

differs from 40o around (1 1 1)

Lecture 11 Slide 6837 Fall 2003

GimballockGimbal lock two or more axis align resulting in a

loss of rotation degrees of freedom

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 5: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Final projectFirst brainstorming session on ThursdayGroups of threeProposal due Monday 1027

A couple of pages Goals Progression

Appointment with staff

Lecture 11 Slide 6837 Fall 2003

Computer-Assisted Animation Keyframingautomate the inbetweeninggood controlless tediouscreating a good animationstill requires considerable skilland talentProcedural animationdescribes the motion algorithmicallyexpress animation as a functionof small number of parameteresExample a clock with second minuteand hour handsbull hands should rotate togetherbull express the clock motions in terms ofa ldquosecondsrdquo variablebull the clock is animated by varying theseconds parameterExample 2 A bouncing ballbullAbs(sin(ωt+θ0))e-kt

Lecture 11 Slide 6837 Fall 2003

Computer-Assisted Animation Physically Based Animation

Assign physical properties to objects (masses forces inertial properties) Simulate physics by solving equations Realistic but difficult to control

Motion Capture

Captures style subtle nuances and realism You must observe someone do something

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Interpolating Orientations in 3-DRotation matrices

Given rotation matrices Mi and time ti find M(t) such that M(ti)=Mi

Lecture 11 Slide 6837 Fall 2003

Flawed SolutionInterpolate each entry independently

Example M0 is identity and M1is 90o around x-axisIs

Is the result a rotation matrix

NO

For example RRTdoes not equal identity

This interpolation does not preserve rigidity

(angles and lengths)

Lecture 11 Slide 6837 Fall 2003

3D rotationsHow many degrees of freedom for 3D orientations

3 degrees of freedom

eg direction of rotation and angle

Or 3 Euler angles

Lecture 11 Slide 6837 Fall 2003

Euler AnglesAn Euler angle is a rotation about a single axis Any

orientation can be described composing three rotation around

each coordinate axis

Roll pitch and yaw

Courtesy of Gernot Hoffmann Used with permission

httpwwwfho-emdende~hoffmanngimbal09082002pdf

Lecture 11 Slide 6837 Fall 2003

Interpolating Euler AnglesNatural orientation representation

angles for 3 degrees of freedomUnnatural interpolationA rotation of 90o first around Z and then around Y

= 120o around (1 1 1)But 30oaround Z then Y

differs from 40o around (1 1 1)

Lecture 11 Slide 6837 Fall 2003

GimballockGimbal lock two or more axis align resulting in a

loss of rotation degrees of freedom

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 6: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Computer-Assisted Animation Keyframingautomate the inbetweeninggood controlless tediouscreating a good animationstill requires considerable skilland talentProcedural animationdescribes the motion algorithmicallyexpress animation as a functionof small number of parameteresExample a clock with second minuteand hour handsbull hands should rotate togetherbull express the clock motions in terms ofa ldquosecondsrdquo variablebull the clock is animated by varying theseconds parameterExample 2 A bouncing ballbullAbs(sin(ωt+θ0))e-kt

Lecture 11 Slide 6837 Fall 2003

Computer-Assisted Animation Physically Based Animation

Assign physical properties to objects (masses forces inertial properties) Simulate physics by solving equations Realistic but difficult to control

Motion Capture

Captures style subtle nuances and realism You must observe someone do something

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Interpolating Orientations in 3-DRotation matrices

Given rotation matrices Mi and time ti find M(t) such that M(ti)=Mi

Lecture 11 Slide 6837 Fall 2003

Flawed SolutionInterpolate each entry independently

Example M0 is identity and M1is 90o around x-axisIs

Is the result a rotation matrix

NO

For example RRTdoes not equal identity

This interpolation does not preserve rigidity

(angles and lengths)

Lecture 11 Slide 6837 Fall 2003

3D rotationsHow many degrees of freedom for 3D orientations

3 degrees of freedom

eg direction of rotation and angle

Or 3 Euler angles

Lecture 11 Slide 6837 Fall 2003

Euler AnglesAn Euler angle is a rotation about a single axis Any

orientation can be described composing three rotation around

each coordinate axis

Roll pitch and yaw

Courtesy of Gernot Hoffmann Used with permission

httpwwwfho-emdende~hoffmanngimbal09082002pdf

Lecture 11 Slide 6837 Fall 2003

Interpolating Euler AnglesNatural orientation representation

angles for 3 degrees of freedomUnnatural interpolationA rotation of 90o first around Z and then around Y

= 120o around (1 1 1)But 30oaround Z then Y

differs from 40o around (1 1 1)

Lecture 11 Slide 6837 Fall 2003

GimballockGimbal lock two or more axis align resulting in a

loss of rotation degrees of freedom

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 7: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Computer-Assisted Animation Physically Based Animation

Assign physical properties to objects (masses forces inertial properties) Simulate physics by solving equations Realistic but difficult to control

Motion Capture

Captures style subtle nuances and realism You must observe someone do something

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Interpolating Orientations in 3-DRotation matrices

Given rotation matrices Mi and time ti find M(t) such that M(ti)=Mi

Lecture 11 Slide 6837 Fall 2003

Flawed SolutionInterpolate each entry independently

Example M0 is identity and M1is 90o around x-axisIs

Is the result a rotation matrix

NO

For example RRTdoes not equal identity

This interpolation does not preserve rigidity

(angles and lengths)

Lecture 11 Slide 6837 Fall 2003

3D rotationsHow many degrees of freedom for 3D orientations

3 degrees of freedom

eg direction of rotation and angle

Or 3 Euler angles

Lecture 11 Slide 6837 Fall 2003

Euler AnglesAn Euler angle is a rotation about a single axis Any

orientation can be described composing three rotation around

each coordinate axis

Roll pitch and yaw

Courtesy of Gernot Hoffmann Used with permission

httpwwwfho-emdende~hoffmanngimbal09082002pdf

Lecture 11 Slide 6837 Fall 2003

Interpolating Euler AnglesNatural orientation representation

angles for 3 degrees of freedomUnnatural interpolationA rotation of 90o first around Z and then around Y

= 120o around (1 1 1)But 30oaround Z then Y

differs from 40o around (1 1 1)

Lecture 11 Slide 6837 Fall 2003

GimballockGimbal lock two or more axis align resulting in a

loss of rotation degrees of freedom

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 8: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Interpolating Orientations in 3-DRotation matrices

Given rotation matrices Mi and time ti find M(t) such that M(ti)=Mi

Lecture 11 Slide 6837 Fall 2003

Flawed SolutionInterpolate each entry independently

Example M0 is identity and M1is 90o around x-axisIs

Is the result a rotation matrix

NO

For example RRTdoes not equal identity

This interpolation does not preserve rigidity

(angles and lengths)

Lecture 11 Slide 6837 Fall 2003

3D rotationsHow many degrees of freedom for 3D orientations

3 degrees of freedom

eg direction of rotation and angle

Or 3 Euler angles

Lecture 11 Slide 6837 Fall 2003

Euler AnglesAn Euler angle is a rotation about a single axis Any

orientation can be described composing three rotation around

each coordinate axis

Roll pitch and yaw

Courtesy of Gernot Hoffmann Used with permission

httpwwwfho-emdende~hoffmanngimbal09082002pdf

Lecture 11 Slide 6837 Fall 2003

Interpolating Euler AnglesNatural orientation representation

angles for 3 degrees of freedomUnnatural interpolationA rotation of 90o first around Z and then around Y

= 120o around (1 1 1)But 30oaround Z then Y

differs from 40o around (1 1 1)

Lecture 11 Slide 6837 Fall 2003

GimballockGimbal lock two or more axis align resulting in a

loss of rotation degrees of freedom

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 9: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Interpolating Orientations in 3-DRotation matrices

Given rotation matrices Mi and time ti find M(t) such that M(ti)=Mi

Lecture 11 Slide 6837 Fall 2003

Flawed SolutionInterpolate each entry independently

Example M0 is identity and M1is 90o around x-axisIs

Is the result a rotation matrix

NO

For example RRTdoes not equal identity

This interpolation does not preserve rigidity

(angles and lengths)

Lecture 11 Slide 6837 Fall 2003

3D rotationsHow many degrees of freedom for 3D orientations

3 degrees of freedom

eg direction of rotation and angle

Or 3 Euler angles

Lecture 11 Slide 6837 Fall 2003

Euler AnglesAn Euler angle is a rotation about a single axis Any

orientation can be described composing three rotation around

each coordinate axis

Roll pitch and yaw

Courtesy of Gernot Hoffmann Used with permission

httpwwwfho-emdende~hoffmanngimbal09082002pdf

Lecture 11 Slide 6837 Fall 2003

Interpolating Euler AnglesNatural orientation representation

angles for 3 degrees of freedomUnnatural interpolationA rotation of 90o first around Z and then around Y

= 120o around (1 1 1)But 30oaround Z then Y

differs from 40o around (1 1 1)

Lecture 11 Slide 6837 Fall 2003

GimballockGimbal lock two or more axis align resulting in a

loss of rotation degrees of freedom

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 10: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Flawed SolutionInterpolate each entry independently

Example M0 is identity and M1is 90o around x-axisIs

Is the result a rotation matrix

NO

For example RRTdoes not equal identity

This interpolation does not preserve rigidity

(angles and lengths)

Lecture 11 Slide 6837 Fall 2003

3D rotationsHow many degrees of freedom for 3D orientations

3 degrees of freedom

eg direction of rotation and angle

Or 3 Euler angles

Lecture 11 Slide 6837 Fall 2003

Euler AnglesAn Euler angle is a rotation about a single axis Any

orientation can be described composing three rotation around

each coordinate axis

Roll pitch and yaw

Courtesy of Gernot Hoffmann Used with permission

httpwwwfho-emdende~hoffmanngimbal09082002pdf

Lecture 11 Slide 6837 Fall 2003

Interpolating Euler AnglesNatural orientation representation

angles for 3 degrees of freedomUnnatural interpolationA rotation of 90o first around Z and then around Y

= 120o around (1 1 1)But 30oaround Z then Y

differs from 40o around (1 1 1)

Lecture 11 Slide 6837 Fall 2003

GimballockGimbal lock two or more axis align resulting in a

loss of rotation degrees of freedom

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 11: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

3D rotationsHow many degrees of freedom for 3D orientations

3 degrees of freedom

eg direction of rotation and angle

Or 3 Euler angles

Lecture 11 Slide 6837 Fall 2003

Euler AnglesAn Euler angle is a rotation about a single axis Any

orientation can be described composing three rotation around

each coordinate axis

Roll pitch and yaw

Courtesy of Gernot Hoffmann Used with permission

httpwwwfho-emdende~hoffmanngimbal09082002pdf

Lecture 11 Slide 6837 Fall 2003

Interpolating Euler AnglesNatural orientation representation

angles for 3 degrees of freedomUnnatural interpolationA rotation of 90o first around Z and then around Y

= 120o around (1 1 1)But 30oaround Z then Y

differs from 40o around (1 1 1)

Lecture 11 Slide 6837 Fall 2003

GimballockGimbal lock two or more axis align resulting in a

loss of rotation degrees of freedom

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 12: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Euler AnglesAn Euler angle is a rotation about a single axis Any

orientation can be described composing three rotation around

each coordinate axis

Roll pitch and yaw

Courtesy of Gernot Hoffmann Used with permission

httpwwwfho-emdende~hoffmanngimbal09082002pdf

Lecture 11 Slide 6837 Fall 2003

Interpolating Euler AnglesNatural orientation representation

angles for 3 degrees of freedomUnnatural interpolationA rotation of 90o first around Z and then around Y

= 120o around (1 1 1)But 30oaround Z then Y

differs from 40o around (1 1 1)

Lecture 11 Slide 6837 Fall 2003

GimballockGimbal lock two or more axis align resulting in a

loss of rotation degrees of freedom

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 13: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Interpolating Euler AnglesNatural orientation representation

angles for 3 degrees of freedomUnnatural interpolationA rotation of 90o first around Z and then around Y

= 120o around (1 1 1)But 30oaround Z then Y

differs from 40o around (1 1 1)

Lecture 11 Slide 6837 Fall 2003

GimballockGimbal lock two or more axis align resulting in a

loss of rotation degrees of freedom

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 14: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

GimballockGimbal lock two or more axis align resulting in a

loss of rotation degrees of freedom

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 15: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

DemoBy Sobeitvoidfrom

httpwwwgamedevnetreferenceprogrammingfeaturesqpowerspage7asp

See also

httpwwwcgluwaterloocaGALLERYimage_htmlgimbaljpghtml

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 16: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Euler angles in the real worldApollo inertial measurement unitTo prevent lock they had to add a fourth Gimbal

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 17: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Recap Euler angles3 angles along 3 axisPoor interpolation lockBut used in flight simulation etc because natural

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 18: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 19: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Solution Quaternion InterpolationInterpolate orientation on the unit sphereBy analogy 1- 2- 3-DOF rotations as constrained points on 1

2 3-spheres

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 20: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

1D sphere and complex planeInterpolate orientation in 2D1 angle

But messy because modulo 2π

Use interpolation in (complex) 2D planeOrientation = complex argument of the number

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 21: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Velocity issue amp slerp linear interpolation (lerp) in the plane interpolates the straightline between the two orientations and not their sphericaldistance Lerp(q0 q1t )=q(t)=q0(1-t)+q1t

=gt The interpolated motion does not have uniform velocity it may speed up too much

Solution Spherical linear interpolation (slerp) interpolate along the arc lines by adding a sine term

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 22: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

2-angle orientationEmbed 2-sphere in 3D2 angles

Messy because modulo 2πand pole

Use linear interpolation in 3D spaceOrientation = projection onto the sphereSame velocity correction

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 23: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

3 angles

Use the same principle interpolate in higher-dimensional space Project back to unit sphere

Probably need the 3-sphere embedded in 4DMore complex harder to visualizeUse the so-called Quaternions

Due to Hamilton (1843) also Shoemake Siggraph85

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 24: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation

Is there exactly one quaternion per rotation

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 25: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

QuaternionsQuaternions are unit vectors on 3-sphere (in 4D)Right-hand rotation of θ radians about v isq = cos(θ2) vsin(θ2)

Often noted (s v) What if we use ndashv

What is the quaternion of Identity rotation qi= 1 0 0 0

Is there exactly one quaternion per rotation No q=cos(θ2) vsin(θ2) is the same rotation as

- q=cos((θ+2π)2) vsin((θ+2π)2) Antipodal on the quaternion sphere

What is the inverse q-1of quaternion q a b c d

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 26: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2)

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 27: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Quaternion AlgebraTwo general quaternionsare multiplied by a special rule

Sanity check cos(α2) vsin(α2) cos(β2) vsin(β2) cos(α2)cos(β2) -sin(α2)v sin(β2) v cos(β2) sin(α2) v+

cos(α2)sin(β2) v+vtimesv

cos(α2)cos(β2) -sin(α2)sin(β2)v(cos(β2) sin(α2) + cos(α2) sin(β2))

cos((α+β)2) v sin((α+β)2)

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 28: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Quaternion recap 1 (wake up)4D representation of orientation

q= cos(θ2) vsin(θ2)Inverse is q-1 =(s -v)Multiplication rule

Consistent with rotation composition

How do we apply rotationsHow do we interpolate

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 29: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

p= (xyz) q= cos(θ2) 00sin(θ2) = c 00sq0p= c 0 0 s 0 x y z

=c0-zs cp+0(00s)+ (00s) timesp=-zs c p+ (-sysx0)

q0p q -1= -zs c p+ (-sysx0) c 00-s= -zsc-(cp+(-sysx0))(00-s) -zs(00-s)+c(cp+(-sy sx0))+ (c p+ (-sysx0) ) x (00-s) = 0 (00zs2)+c2p+(-csy csx0)+(-csy csx 0)+(s2x s2y 0)= 0 (c2x-2csy-s2x c2y+2csx-s2y zs2+sc2)

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 30: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Quaternion Algebra

Two general quaternionsare multiplied by a special rule

To rotate 3D pointvector p by q compute q0 p q-1

Quaternionsare associative (q1 q2) q3 = q1 (q2 q3)

But not commutative q1 q2 neq2 q1

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 31: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Quaternion Interpolation (velocity) The only problem with linear interpolation (lerp) of quaternionsis that it interpolates the straight line (the secant) between the two quaternionsand not their spherical distance As a result the interpolated motion does not have smooth velocity it may speed up too much in some sections

Spherical linear interpolation (slerp) removes this problem byinterpolating along the arc lines instead of the secant lines

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 32: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Quaternion InterpolationHigher-order interpolations must stay on sphereSee Shoemakepaper for

Matrix equivalent of composition Details of higher-order interpolation More of underlying theory

Problems No notion of favored direction (eg up for camera) No notion of multiple rotations needs more key points

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 33: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

QuaternionsCan also be defined like complex numbers a+bi+cj+dkMultiplication rules

i2=j2=k2=-1 ij=k=-ji jk=i=-kj ki=j=-ik

hellip

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 34: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Mandelbrot set Zn+1=Zn2+Z0

Julia set Zn+1=Zn2+C

httpaleph0clarkuedu~djoycejuliaexplorerhtmlDo the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnet

Images removed due to copyright considerations

See also httpwwwchaosprodegallerygalleryphpcat=Anim

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 35: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

FunJulia Sets in Quaternion space

Julia set Zn+1=Zn2+C

Do the same with QuaternionsRendered by Skal (Pascal Massimino) httpskalplanet-dnetThis is 4D so we need the time dimension as well

Images removed due to copyright considerations

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 36: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Recap quaternions3 angles represented in 4D

q= cos(θ2) vsin(θ2)

Weird multiplication rules

Good interpolation using slerp

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 37: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

OverviewInterpolation of rotations quaternions

Euler angles

Quaternions

Dynamics

Particles

Rigid body

Deformable objects

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
Page 38: Lecture 11 Slide 6.837 Fall 2003 Computer Animation II Orientation Interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic

Lecture 11 Slide 6837 Fall 2003

Break movie time

Pixar For the Bird

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38