How Can I Interpolate Rotation Matrices for Skeletal Animation?

In summary, interpolating rotations between frames can be done using either Euler angles or quaternions. However, quaternions are usually considered to be more cool.
  • #1
Dissident Dan
238
2
I'm working on a skeletal animation system, and I want to interpolate the rotations between frames. The rotations are represented by 3x3 matrices.

It's easy enough to interpolate one of the axes linearly by averaging the values from the two frames and re-normalizing, but when you do this with 3 axes, they usually lose their orthogonality.

One possible way to interpolate them would be to convert them to Euler angles (which I still need to learn/figure out how to do), interpolate those, and then convert back to a matrix.

Is there any way to interpolate matrices without first converting them to another representation?
 
Physics news on Phys.org
  • #2
Dissident Dan said:
Is there any way to interpolate matrices without first converting them to another representation?

Not that I know of. The two standard approaches (to interpolating rotations) are to use either Euler angles or quaternions. I've never heard of any other technique.
 
  • #3
Of master coda's two, quaternions will probably work best.

You'll find the eigenvector for your rotation matrix. Then you rotate about your eigenvector. That's an oversimplified general description but gives the general gist.

All of your rotation matrices are orthogonal, so finding the eigenvector is pretty easy. If you think of the top row as being associated with your x-axis, 2nd with the y, 3rd with the z and think of your 1st column as x, 2nd as y, 3rd as z, your eigenvector winds up being:

x : yz-zy
y : xz-zx
z : xy-yx

There's a more formal way to find eigenvectors for matrices in general, but I honestly couldn't tell you what it is anymore (if I ever could).

The alternative is to relate your frames directly back to your reference axes using direction cosines. It's a little harder to visualize, but it works just as well.

I think the actual difference between the two methods is pretty minor, although programmers get into pretty heated debates about it. My general impression is that quaternions are considered way more cool by most programmers.
 

FAQ: How Can I Interpolate Rotation Matrices for Skeletal Animation?

What is an interpolating rotation matrix?

An interpolating rotation matrix is a mathematical tool used to represent the rotation of an object in three-dimensional space. It is a 3x3 matrix that can be used to rotate a vector or set of coordinates from one orientation to another.

How does an interpolating rotation matrix work?

An interpolating rotation matrix works by multiplying the original coordinates of an object by a series of transformation matrices. These transformation matrices represent the rotation of the object at different points in time or space. By multiplying the original coordinates by each transformation matrix, the final result is a set of new coordinates that represent the object's rotated position.

What is the purpose of using an interpolating rotation matrix?

The purpose of using an interpolating rotation matrix is to accurately represent the rotation of an object in three-dimensional space. It can be used in computer graphics, robotics, and other fields where precise rotation calculations are necessary.

How are interpolating rotation matrices calculated?

Interpolating rotation matrices are typically calculated using a combination of mathematical equations and algorithms. These calculations take into account the initial and final orientations of the object, as well as the desired interpolation method (such as linear or spline interpolation).

What are the limitations of interpolating rotation matrices?

Interpolating rotation matrices are limited in their ability to accurately represent rotations of more than 180 degrees. They also do not take into account other factors such as translation or scaling, and thus cannot be used to represent general transformations of an object in three-dimensional space.

Similar threads

Replies
5
Views
1K
Replies
4
Views
3K
Replies
1
Views
2K
Replies
5
Views
1K
Replies
8
Views
3K
Replies
1
Views
642
Back
Top