Upload
peter-brown
View
214
Download
0
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Lecture 11 Slide 6837 Fall 2003
Break movie time
Pixar For the Bird