Quaternions and Exponentials

Similar documents
Animating Transformations

Quaternion Rotations AUI Course Denbigh Starkey

Lecture Note 3: Rotational Motion

Quaternions & Rotation in 3D Space

Quaternions and Rotations

Visualizing Quaternions

Parametric Surfaces. Michael Kazhdan ( /657) HB , FvDFH 11.2

CS612 - Algorithms in Bioinformatics

Applications of Dual Quaternions in Three Dimensional Transformation and Interpolation

Visual Recognition: Image Formation

For each question, indicate whether the statement is true or false by circling T or F, respectively.

Quaternions and Rotations

Part II: OUTLINE. Visualizing Quaternions. Part II: Visualizing Quaternion Geometry. The Spherical Projection Trick: Visualizing unit vectors.

Animation. Keyframe animation. CS4620/5620: Lecture 30. Rigid motion: the simplest deformation. Controlling shape for animation

Transformations: 2D Transforms

AH Matrices.notebook November 28, 2016

Visualizing Quaternions

CMSC 425: Lecture 6 Affine Transformations and Rotations

Animation Curves and Splines 2

12.1 Quaternions and Rotations

Quaternions and Rotations

Animation. CS 4620 Lecture 33. Cornell CS4620 Fall Kavita Bala

Quaternions and Rotations

Inertial Measurement Units II!

a a= a a =a a 1 =1 Division turned out to be equivalent to multiplication: a b= a b =a 1 b

3D Game Engine Programming. Understanding Quaternions. Helping you build your dream game engine. Posted on June 25, 2012 by Jeremiah van Oosten

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala

Transformation. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering

Freeform Curves on Spheres of Arbitrary Dimension

Curve Subdivision in SE(2)

Motivation. Parametric Curves (later Surfaces) Outline. Tangents, Normals, Binormals. Arclength. Advanced Computer Graphics (Fall 2010)

Curves and Surfaces Computer Graphics I Lecture 9

3.3 Interpolation of rotations represented by quaternions

Quaternion properties: addition. Introduction to quaternions. Quaternion properties: multiplication. Derivation of multiplication

Lecture «Robot Dynamics»: Kinematics 2

In this course we will need a set of techniques to represent curves and surfaces in 2-d and 3-d. Some reasons for this include

Rotation and Orientation: Fundamentals. Perelyaev Sergei VARNA, 2011

3D Kinematics. Consists of two parts

Curves D.A. Forsyth, with slides from John Hart

CALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES

CS 475 / CS 675 Computer Graphics. Lecture 16 : Interpolation for Animation

Transformations Week 9, Lecture 18

CS 445 / 645 Introduction to Computer Graphics. Lecture 21 Representing Rotations

Intro to Curves Week 1, Lecture 2

3D Transformations. CS 4620 Lecture Kavita Bala w/ prior instructor Steve Marschner. Cornell CS4620 Fall 2015 Lecture 11

Rotation parameters for model building and stable parameter inversion in orthorhombic media Cintia Lapilli* and Paul J. Fowler, WesternGeco.

2D/3D Geometric Transformations and Scene Graphs

Game Engineering: 2D

Animating orientation. CS 448D: Character Animation Prof. Vladlen Koltun Stanford University

Computer Animation Fundamentals. Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics

Assignment 4: Mesh Parametrization

CS770/870 Spring 2017 Quaternions

521493S Computer Graphics Exercise 2 Solution (Chapters 4-5)

Animation and Quaternions

COMP 175 COMPUTER GRAPHICS. Ray Casting. COMP 175: Computer Graphics April 26, Erik Anderson 09 Ray Casting

Information Coding / Computer Graphics, ISY, LiTH. Splines

Interlude: Solving systems of Equations

Sung-Eui Yoon ( 윤성의 )

Differential Geometry: Circle Patterns (Part 1) [Discrete Conformal Mappinngs via Circle Patterns. Kharevych, Springborn and Schröder]

SUMMARY. CS380: Introduction to Computer Graphics Track-/Arc-ball Chapter 8. Min H. Kim KAIST School of Computing 18/04/06.

Interpolating/approximating pp gcurves

Quaternions and Euler Angles

3D Transformations. CS 4620 Lecture 10. Cornell CS4620 Fall 2014 Lecture Steve Marschner (with previous instructors James/Bala)

Computer Vision. 2. Projective Geometry in 3D. Lars Schmidt-Thieme

CS 536 Computer Graphics Intro to Curves Week 1, Lecture 2

Linear algebra deals with matrixes: two-dimensional arrays of values. Here s a matrix: [ x + 5y + 7z 9x + 3y + 11z

You will have the entire period (until 9:00pm) to complete the exam, although the exam is designed to take less time.

Revision Problems for Examination 2 in Algebra 1

Animations. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Kavita Bala

Grassmannians and Random Polygons

Monday, 12 November 12. Matrices

CS184: Using Quaternions to Represent Rotation

Linear and Affine Transformations Coordinate Systems

CS F-07 Objects in 2D 1

CT5510: Computer Graphics. Transformation BOCHANG MOON

Chapter 18. Geometric Operations

Today. Today. Introduction. Matrices. Matrices. Computergrafik. Transformations & matrices Introduction Matrices

Know it. Control points. B Spline surfaces. Implicit surfaces

ME 115(a): Final Exam (Winter Quarter 2009/2010)

Splines. Connecting the Dots

METR 4202: Advanced Control & Robotics

Short on camera geometry and camera calibration

CS354 Computer Graphics Rotations and Quaternions

A second order algorithm for orthogonal projection onto curves and surfaces

1 Historical Notes. Kinematics 5: Quaternions

Graphics and Interaction Transformation geometry and homogeneous coordinates

Matrices. Chapter Matrix A Mathematical Definition Matrix Dimensions and Notation

Geometric Algebra for Computer Graphics

CS 4621 PPA3: Animation

Who has worked on a voxel engine before? Who wants to? My goal is to give the talk I wish I would have had before I started on our procedural engine.

COMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates

Computer Vision I - Appearance-based Matching and Projective Geometry

Tentti/Exam Midterm 2/Välikoe 2, December

Homework #2. Hidden Surfaces, Projections, Shading and Texture, Ray Tracing, and Parametric Curves

R3DG Features: Relative 3D Geometry-based Skeletal Representations for Human Action Recognition

Final Exam CS 184: Foundations of Computer Graphics page 1 of 14 Fall 2016 Prof. James O Brien

Multi-level Partition of Unity Implicits

ME 597: AUTONOMOUS MOBILE ROBOTICS SECTION 2 COORDINATE TRANSFORMS. Prof. Steven Waslander

2D Spline Curves. CS 4620 Lecture 18

Rotations (and other transformations) Rotation as rotation matrix. Storage. Apply to vector matrix vector multiply (15 flops)

Transcription:

Quaternions and Exponentials Michael Kazhdan (601.457/657) HB A.6 FvDFH 21.1.3

Announcements OpenGL review II: Today at 9:00pm, Malone 228 This week's graphics reading seminar: Today 2:00-3:00pm, my office "Skinning with Dual Quaternions"

Recall We saw two different methods for interpolating/approximating between rotations: Normalization: (SVD) Blend as 3 3 matrices and then map to the closest rotation. Parameterization: (Euler Angles) Compute the parameter values, blend those, and then evaluate at the blended values.

Overview Cross Products and (Skew) Symmetric Matrices Quaternions The Exponential Map

Cross Product Given 3D vectors u = u 1, u 2, u 3 and v = (v 1, v 2, v 3 ) the cross product of u and v is: u 2 v 3 u 3 v 2 u v u v = u 3 v 1 u 1 v 3 u 1 v 2 u 2 v 1 v Properties: The cross product is orthogonal to both u and v. The vectors u, v, u v align with the right hand rule. The length of the cross product is equal to the area of the parallelogram defined by u and v. u v = v u u v + w = u v + u w tu v = t(u v) u

(Skew) Symmetric Matrices A matrix M is symmetric if: M ij = M ji M = M t A matrix M is skew-symmetric if: M ij = M ji M = M t (Skew) Symmetric matrices are closed under addition and scaling: If A = A t and B = B t, then A + B = A + B t. If A = A t then αa = αa t. If A = A t and B = B t, then A + B = A + B t. If A = A t then αa = αa t.

Overview Cross Products and (Skew) Symmetric Matrices Quaternions The Exponential Map

Quaternions Quaternions are extensions of complex numbers, with three imaginary values instead of one: a + ib + jc + kd Like the complex numbers, we can add quaternions together by summing the individual components: a 1 + ib 1 + jc 1 + kd 1 + a 2 + ib 2 + jc 1 + kd 2 = a 1 + a 2 + i b 1 + b 2 + j c 1 + c 2 + k(d 1 + d 2 )

Quaternions Quaternions are extensions of complex numbers, with three imaginary values instead of one: a + ib + jc + kd Like the imaginary component of complex numbers, squaring the components gives: i 2 = j 2 = k 2 = 1 However, the multiplication rules are more complex: ij = k ik = j jk = i ji = k ki = j kj = i

Quaternions Quaternions are extensions of complex numbers, with three imaginary values instead of one: a + ib + jc + kd Like Note: the imaginary component of complex numbers, squaring Multiplication the components of quaternions gives: is not commutative i 2 the = result j 2 = kof 2 the = 1 multiplication However, depends the on multiplication the order in which rules it are is done more complex: ij = k ik = j jk = i ji = k ki = j kj = i

Quaternions More generally, the product of two quaternions is: a 1 + ib 1 + jc 1 + kd 1 a 2 + ib 2 + jc 2 + kd 2 = a 1 a 2 b 1 b 2 c 1 c 2 d 1 d 2 +i a 1 b 2 + a 2 b 1 + c 1 d 2 c 2 d 1 +j a 1 c 2 + a 2 c 1 b 1 d 2 + b 2 d 1 +k(a 1 d 2 + a 2 d 1 + b 1 c 2 b 2 c 1 ) i 2 = j 2 = k 2 = 1 ij = k ik = j jk = i ji = k ki = j kj = i

Quaternions As with complex numbers, the conjugate of a quaternion q = a + ib + jc + kd is: q = a ib jc kd As with complex numbers, the norm of a quaternion q = a + ib + jc + kd is: q = a 2 + b 2 + c 2 + d 2 = q q As with complex numbers, the reciprocal is defined by dividing the conjugate by the square norm: 1 q = 1 q q q = q q 2

Quaternions One way to express a quaternion is as a pair consisting of the real value and the 3D vector consisting of the imaginary components: q = α, w with α = a and w = (b, c, d) The advantage of this representation is that it is easier to express quaternion multiplication: q 1 q 2 = α 1, w 1 α 2, w 2 = α 1 α 2 w 1, w 2, α 1 w 2 + α 2 w 1 + w 1 w 2 q 1 q 2 = a 1 a 2 b 1 b 2 c 1 c 2 d 1 d 2 +i a 1 b 2 + a 2 b 1 + c 1 d 2 c 2 d 1 +j a 1 c 2 + a 2 c 1 b 1 d 2 + b 2 d 1 +k(a 1 d 2 + a 2 d 1 + b 1 c 2 b 2 c 1 )

Quaternions We can also think of points in 3D as (purely imaginary) quaternions: x, y, z ix + jy + kz = (0, w) Given a unit quaternion q and an imaginary quaternion (3D point) p, consider the map: q p = qp q

Quaternions q p = qp q Claim: 1. The map takes 3D points to 3D points q(p) = α q, w q 0, w p α q, w q = w q, w p, α q w p + w q w p α q, w q = α q w q, w p + α q w p, w q + w q w p, w q, = 0,

Quaternions q p = qp q Claim: 1. The map takes 3D points to 3D points 2. The map is linear q a p 1 + b p 2 = q a p 1 + b p 2 q = a qp q q + b qp 2 q = a q p 1 + b q p 2

Quaternions q p = qp q Claim: 1. The map takes 3D points to 3D points 2. The map is linear 3. The map is norm-preserving q p = qp q = q p q = p since q is a unit quaternion

Quaternions q p = qp q Claim: 1. The map takes 3D points to 3D points 2. The map is linear 3. The map is norm-preserving The map p qp q is a rotation when q is a unit quaternion.

Quaternions and Rotations If q = a + ib + jc + kd is a unit quaternion ( q = 1), we can associate q with the rotation: R q = 1 2c 2 2d 2 2bc 2ad 2bd + 2ac 2bc + 2ad 1 2b 2 2d 2 2cd 2ab 2bd 2ac 2cd + 2ab 1 2b 2 2c 2 This has the property that: R q 1 q 2 = R q 1 R q 2 Note that because all of the terms are quadratic, the rotation associated with q is the same as the rotation associated with q.

Quaternions and Rotations If q = a + ib + jc + kd is a unit quaternion ( q = 1), we can associate q with the rotation: R q = 1 2c 2 2d 2 2bc 2ad 2bd + 2ac 2bc + 2ad 1 2b 2 2d 2 2cd 2ab 2bd 2ac 2cd + 2ab 1 2b 2 2c 2 Because q is a unit quaternion, we have: q 2 = a, w 2 = a 2 + w 2 = 1 Or equivalently, if we set w to be a unit vector, there exists θ such that: q = cos θ 2, sin θ 2 w

Quaternions and Rotations If q = a + ib + jc + kd is a unit quaternion ( q = 1), we can associate q with the rotation: R q = 1 2c 2 2d 2 2bc 2ad 2bd + 2ac 2bc + 2ad 1 2b 2 2d 2 2cd 2ab 2bd 2ac 2cd + 2ab 1 2b 2 2c 2 Because q is a unit quaternion, we have: q = cos θ 2, sin θ 2 w It turns out that q corresponds to the rotation whose: axis of rotation is w, and angle of rotation is θ.

Quaternions Instead of blending matrices {M 0,, M n 1 } and then normalizing using SVD, we can blend the quaternions and then normalize them: For each M i, compute the quaternion rep. (α i, w i )

Quaternions Instead of blending matrices {M 0,, M n 1 } and then normalizing using SVD, we can blend the quaternions and then normalize them: For each M i, compute the quaternion rep. (α i, w i ) Interpolate/Approximate the quaternions:

Quaternions Instead of blending matrices {M 0,, M n 1 } and then normalizing using SVD, we can blend the quaternions and then normalize them: For each M i, compute the quaternion rep. (α i, w i ) Interpolate/Approximate the quaternions:» Linear Interpolation: α i t = 1 t α i + tα i+1 w i t = 1 t w i + tw i+1

Quaternions Instead of blending matrices {M 0,, M n 1 } and then normalizing using SVD, we can blend the quaternions and then normalize them: For each M i, compute the quaternion rep. (α i, w i ) Interpolate/Approximate the quaternions:» Linear Interpolation» Catmull-Rom Interpolation: α i t = CR 0 t α k 1 + CR 1 t α k + CR 2 t α k+1 + CR 3 t α k+2 w i t = CR 0 t w k 1 + CR 1 t w k + CR 2 t w k+1 + CR 3 t w k+2

Quaternions Instead of blending matrices {M 0,, M n 1 } and then normalizing using SVD, we can blend the quaternions and then normalize them: For each M i, compute the quaternion rep. (α i, w i ) Interpolate/Approximate the quaternions:» Linear Interpolation» Catmull-Rom Interpolation» Uniform Cubic B-Spline Approximation: α i t = B 0,3 t α k 1 + B 1,3 t α k + B 2,3 t α k+1 + B 3,3 t α k+2 w i t = B 0,3 t w k 1 + B 1,3 t w k + B 2,3 t w k+1 + B 3,3 t w k+2

Quaternions Instead of blending matrices {M 0,, M n 1 } and then normalizing using SVD, we can blend the quaternions and then normalize them: For each M i, compute the quaternion rep. (α i, w i ) Interpolate/Approximate the quaternions:» Linear Interpolation» Catmull-Rom Interpolation» Uniform Cubic B-Spline Approximation Set the value of the in-between rotation to be the normalized quaternion: Φ i t = α i t, w i t α i t, w i t

Quaternions Instead of blending matrices {M 0,, M n 1 } and then normalizing using SVD, we can blend the quaternions and then normalize them: For each M i, compute the quaternion rep. (α i, w i ) Interpolate/Approximate the quaternions: Note:» Linear Interpolation Using» Catmull-Rom SVD, we interpolated Interpolation in the (9 = 3 3)-dimensional space» Uniform of matrices Cubic and B-Spline then normalized. Approximation With Set quaternions the value of we the interpolate in-between the rotation 4-dimensional to be the space of normalized quaternions quaternion: and normalize. Φ i t = α i t, w i t α i t, w i t

Quaternions As with points on the circle/sphere, this type of interpolation/approximation has the limitation: Uniform sampling in quaternion space does not result in uniform sampling in rotation space. Φ t = Φ t Φ t p 0 p 1 Φ t = 1 t p 0 + tp 1

Quaternions As with points on the circle/sphere, this type of interpolation/approximation has the limitation: Uniform sampling in quaternion space does not result in uniform sampling in rotation space. Additionally, since R q = R(q) there are two different quaternions we can associate with a rotation, so the mapping is not well-defined.

Overview Cross Products and (Skew) Symmetric Matrices Quaternions The Exponential Map

Geodesics Given a surface S(u, v) a geodesic is a curve that is (locally) the shortest path between two points. S u, v = cos u cos v, sin u, cos u sin v

Geodesics Given a manifold (a d-dimensional surface) a geodesic is a curve that is (locally) the shortest path between two points.

Tangent Spaces Given a curve C(t), the tangent line to the curve at a point p 0 = C(t 0 ) is the line that most closely approximates the curve C(t) at the point p 0. C(t) C(t 0 ) Tangent Line

Tangent Spaces Given a curve C(t), the tangent line to the curve at a point p 0 = C(t 0 ) is the line that most closely approximates the curve C(t) at the point p 0. This is the line through p 0 with direction C (t 0 ). C(t 0 ) C (t 0 ) C(t) Tangent Line

Tangent Spaces Given a surface S(u, v) the tangent plane to the curve at a point p 0 = S(u 0, v 0 ) is the plane that most closely approximates S u, v at the point p 0. S(u 0, v 0 ) S u, v = cos u cos v, sin u, cos u sin v

Tangent Spaces Given a surface S(u, v) the tangent plane to the curve at a point p 0 = S(u 0, v 0 ) is the plane that most closely approximates S u, v at the point p 0. This is the plane through p 0, parallel to the plane spanned by: S u,v u u 0,v 0 and S u,v v u 0,v 0 S u S v S(u 0, v 0 ) S u, v = cos u cos v, sin u, cos u sin v

Tangent Spaces Given a manifold (a d-dimensional surface) the tangent space to the manifold at a point p 0 on the manifold is the d-dimensional plane that most closely approximates the manifold at the point p 0.

The Exponential Map Given a curve C(t), the exponential at p 0 = C(t 0 ) is a map that sends points in the tangent space of p 0 to the curve C(t). C(t 0 ) exp(p 0, v) C(t) Tangent Line

The Exponential Map Given a curve C(t), the exponential at p 0 = C(t 0 ) is a map that sends points in the tangent space of p 0 to the curve C(t). The distance along the curve of a point exp(p 0, v) from p 0 is equal to v. C(t 0 ) exp(p 0, v) C(t) Tangent Line

The Exponential Map Given a surface S(u, v), the exponential at the point p 0 = S(u 0, v 0 ) is a map that sends points in the tangent plane of p 0 to the surface S(u, v). exp(p 0, w) S(u 0, v 0 )

The Exponential Map Given a surface S(u, v), the exponential at the point p 0 = S(u 0, v 0 ) is a map that sends points in the tangent plane of p 0 to the surface S(u, v). If we fix a vector w in the tangent space of p 0, then the curve exp(p 0, tw) will be a geodesic, leaving p 0 in direction w and will have length equal to tw. w p 0

The Exponential Map Given a surface S(u, v), the exponential at the point p 0 = S(u 0, v 0 ) is a map that sends points in the tangent plane of p 0 to the surface S(u, v). If we fix a vector w in the tangent space of p 0, then the curve exp(p 0, tw) will be a geodesic, leaving p 0 in direction w and will have length equal to tw. exp(p 0, tw) w p 0

The Exponential Map Given a surface S(u, v), the exponential at the point p 0 = S(u 0, v 0 ) is a map that sends points in the tangent plane of p 0 to the surface S(u, v). If we fix a vector w in the tangent space of p 0, then the curve exp(p 0, tw) will be a geodesic, leaving p 0 in direction w and will have length equal to tw. p 0 w

The Exponential Map Given a surface S(u, v), the exponential at the point p 0 = S(u 0, v 0 ) is a map that sends points in the tangent plane of p 0 to the surface S(u, v). If we fix a vector w in the tangent space of p 0, then the curve exp(p 0, tw) will be a geodesic, leaving p 0 in direction w and will have length equal to tw. exp(p 0, tw) p 0 w

The Exponential Map Given a surface S(u, v), the exponential at the point p 0 = S(u 0, v 0 ) is a map that sends points in the tangent plane of p 0 to the surface S(u, v). If we fix a vector w in the tangent space of p 0, then the curve exp(p 0, tw) will be a geodesic, leaving p 0 in direction w and will have length equal to tw. w p 0

The Exponential Map Given a surface S(u, v), the exponential at the point p 0 = S(u 0, v 0 ) is a map that sends points in the tangent plane of p 0 to the surface S(u, v). If we fix a vector w in the tangent space of p 0, then the curve exp(p 0, tw) will be a geodesic, leaving p 0 in direction w and will have length equal to tw. w exp(p 0, tw) p 0

The Exponential Map Given a manifold (a d-dimensional surface), the exponential at point p 0 on the manifold is a map that sends points in the tangent plane of p 0 to the manifold. If we fix a vector w in the tangent space of p 0, then the curve exp(p 0, tw) will be a geodesic, leaving p 0 in direction w and will have length equal to tw.

The Logarithm Map For a point p 0 on a curve/surface/manifold, the logarithm is the inverse of the exponential, sending points on the curve/surface/manifold back into the tangent space of p 0.

The Exponential Map Example: Let C be the unit circle, the exponential map exp 1,0, t is the map sending the point t to the point cos t, sin t. exp 1,0, t t (1,0)

The Exponential Map Example: Let C be the unit circle, the exponential map exp 1,0, t is the map sending the point t to the point cos t, sin t. exp 1,0, t Note: The exponential map is many-to-one: exp 1,0, t = exp 1,0, t + 2kπ so the logarithm is not unique. t (1,0)

The Exponential Map Fact: Let GL(n) be the space of n n invertible matrices, exp(id., M) is the map sending an arbitrary matrix M to an invertible one. Let SO(n) be the space of n n rotation matrices, exp Id., M is the map sending a skew-symmetric matrix M to a rotation.

The Exponential Map How do we actually compute the exponential map?

The Exponential Map How do we actually compute the exponential map? It is difficult to find a closed form solution, but for matrices we can use a Taylor series approximation: exp Id., A = Id. +A + 1 2! A2 + + 1 n! An + In a similar manner, we can define the logarithm: ln Id., A = A Id. A Id. 2 2 + + 1 n+1 A Id. n + n

The Exponential Map Properties: exp Id., 0 = Id. exp Id.,tA t t=0 = A exp Id., ln Id., A = A exp Id., A + B = exp(id., A) exp(id., B) if and only if AB = BA exp(id., A) = exp Id., A exp(id., αa) = exp Id., A 1 α

Rotation Interpolation/Approximation Given a collection of rotations {M 0,, M n 1 } we can generate a curve passing through/near the matrices in the following manner: For each M i, compute the logarithm ln(id., M i )

Rotation Interpolation/Approximation Given a collection of rotations {M 0,, M n 1 } we can generate a curve passing through/near the matrices in the following manner: For each M i, compute the logarithm ln(id., M i ) Interpolate/Approximate the logarithms:

Rotation Interpolation/Approximation Given a collection of rotations {M 0,, M n 1 } we can generate a curve passing through/near the matrices in the following manner: For each M i, compute the logarithm ln(id., M i ) Interpolate/Approximate the logarithms:» Linear Interpolation: LN i t = 1 t ln Id., M i + ln(id., M i+1 )

Rotation Interpolation/Approximation Given a collection of rotations {M 0,, M n 1 } we can generate a curve passing through/near the matrices in the following manner: For each M i, compute the logarithm ln(id., M i ) Interpolate/Approximate the logarithms:» Linear Interpolation:» Catmull-Rom Interpolation: LN i t = CR 0 t ln Id., M k 1 + CR 1 t ln(id., M k ) + CR 1 t ln(id., M k+1 ) + CR 1 t ln(id., M k+2 )

Rotation Interpolation/Approximation Given a collection of rotations {M 0,, M n 1 } we can generate a curve passing through/near the matrices in the following manner: For each M i, compute the logarithm ln(id., M i ) Interpolate/Approximate the logarithms:» Linear Interpolation:» Catmull-Rom Interpolation:» Uniform Cubic B-Spline Approximation: LN i t = B 0,3 t ln Id., M k 1 + B 1,3 t ln Id., M k + B 2,3 t ln Id., M k+1 + B 3,3 t ln Id., M k+2

Rotation Interpolation/Approximation Given a collection of rotations {M 0,, M n 1 } we can generate a curve passing through/near the matrices in the following manner: For each M i, compute the logarithm ln(id., M i ) Interpolate/Approximate the logarithms:» Linear Interpolation:» Catmull-Rom Interpolation:» Uniform Cubic B-Spline Approximation: Set the value of the in-between rotation to be the exponent of the blended logarithms: Φ i t = exp Id., LN i t

Rotation Interpolation/Approximation Given a collection of rotations {M 0,, M n 1 } we can generate a curve passing through/near the matrices in the following manner: For each M i, compute the logarithm ln(id., M i ) Note: Interpolate/Approximate the logarithms: Since» the Linear logarithm Interpolation: of rotations is a skew-symmetric matrix, and since» Catmull-Rom skew-symmetric Interpolation: matrices are closed under addition and scaling,» Uniform the weighted Cubic B-Spline average LN Approximation: i (t) is also skewsymmetric, Set the so value its exponent of the in-between has to a rotation. rotation to be the We exponent are computing of the blended the logarithms: exponential and Φ i t = exp Id., LN i t logarithm relative to the identity. Is that the best choice?

Parameterization (Limitation) Just because we move on a straight line (shortest path) between points in the parameter domain, doesn t mean we move on a straight line (shortest path) between points in the space of rotations. s

Parameterization (Limitation) Just because we move on a straight line (shortest path) between points in the parameter domain, doesn t mean we move on a straight line (shortest path) between points in the space of rotations. s In general, because the parameter domain is flat and the sphere is not, there is no map that will take all straight lines to shortest paths. We don t need a map that takes all straight lines to shortest path. We only need a map that takes all straight lines from a fixed starting point!

Parameterization (Limitation) We can flatten the domain around the starting point so that straight lines from the center point become straight lines on our surface. s In practice, this creates a chicken-and-egg problem where we would like to change the tangent space as we move along the curve.

Parameterization (Limitation) What happens if we just use the tangent space of the starting point to do the blending? Interpolating splines: The curve won t be smooth. Approximating splines: The curve won t be continuous.

Summary In order to define in-between frames for an animation, we need to interpolate/approximate the transformations specified in the key-frames. For translation, we can just use splines For rotations, we need to ensure that the inbetween transformations are also rotations: Euler angles Exponential map In-between transformations are guaranteed to be rotations SVD Quaternions Normalize in-between transformations to turn them into the nearest rotations