- #1

minionx

- 3

- 0

I'm trying to integrate a 3x3 orientation matrix using a vector representing rotational velocity (in 3d)

This is the formula I'm using:

newOrientation = orientation + (dt)(~w)(orientation)

where w is the vector rotational velocity, and the tilde operator creates a “skew-symmetric” matrix out of w.

The problem is, I don't see how this could possibly produce a legitimate orientation matrix. I'm using column-major matricies, so each column of an orientation matrix should contain a normalized vector, right?

I understand that over time, error will creep into things, and the result orientation matrix will begin to be *not quite* orthogonal, and not quite normalized, but what it seems to be producing for me is an orientation matrix containing vectors that arn't REMOTELY normalized.

because of this, when I try to transform a 3d object with it, the object stretches, and essentially tears itself apart.

Am I screwing this up some how? Any help is EXTREMELY appreciated.