I've been trying to solve a (rather simple?) problem lately. I'm surprised I haven't been able to find anything really useful on the net so far.

The thing is I have 3d direction vector. Use it to set the direction of an object in 3d space. To do that I need of course a transformation matrix.

I have a function that properly calculates the LookAt matrix. However it is correct for the view transformation. I had no success in using it to calculate the rotation of the object.

I have also tried using trigonometry using (assuming Y is up):

if(dir.getY() != 0.0f) xAngle = (float)Math.toDegrees(Math.atan((dir.getZ()*dir.getZ()+dir.getX()*dir.getX())/dir.getY())); if(dir.getZ() != 0.0f) yAngle = (float)Math.toDegrees(Math.atan(dir.getX()/dir.getZ())); TransformationMatrix.calculateRotationMatrix(xAngle, yAngle, 0.0f);However this does produce proper results only in certain situations.

Can anybody suggest a solution?

Thanks a lot