Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to take a vector that is using world coordinates and position it using the orientation of an object. So, if the direction of the object is the z-axis, and the vector is (0,0,1), then the orientated vector would point in the direction of the object. I want to vector to remain in the world coordinate system. All I have for the object is it's up and direction vector. So, I can build a matrix with those by crossing them to create the third axis. Multiplying the vector by this matrix transform the vector into the object coordinate system (right?). But, I want the vector in world coordinate system. Should I use the matrix to find euler angles and then use those angles to create a rotation matrix?

share|improve this question
Multiplying the vector by the matrix should give you the vectors orientation in world space – CiscoIPPhone Dec 1 '10 at 14:38
When I did what CiscolPPhone suggested, it was the opposite transform. So, I took the inverse of the matrix and that worked. I'm not sure why though. – zooropa Dec 1 '10 at 16:16
@CiscoIPPhone, any reason that your comment wasn't an answer? That way zooropa here could mark it as accepted. – Tetrad Dec 1 '10 at 16:19
I'll add it as a answer. – CiscoIPPhone Dec 1 '10 at 17:07
up vote 3 down vote accepted

Multiplying the vector by the matrix should give you the vectors orientation in world space. If this isn't the case then it could be that you are building the transformation matrix incorrectly.

share|improve this answer

In addition to what CiscolPPhone said, make sure that you are crossing properly. Dir X Up != Up X Dir. To get the third vector properly, you must first know the handedness of the co-ordinate system. Is it right handed, then it should be Up X Dir and for left handed it should be Dir X Up.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.