PDA

View Full Version : Ok, I have a new question! =)



Caesar
06-23-2000, 02:38 PM
My apologies for asking so many questions. And my thanks to everyone who's helped me so far.

Here's the question:

Is it possible to replace multiple calls to glRotate*() with a single matrix?

I mean. Can I take three rotation matrices (one for each axis) multiply them together (on paper) and thereby having ONE matrix than does all three rotations at once. And just update the angle-variables?

So I have a matrix. I put arbitrary angles into the rotation-angles (I named them a,b and c) and then I do the calulations I have in my angle, upon which I multiply it with the current matrix. Will that work?
Can I multiply the product of three rotation matrices with the current matrix and expect to get the same result as multiplying the current matrix with the three rotation matrices sequentially?

DFrey
06-23-2000, 05:10 PM
Sure you can do this. Just watch the order of your matrix multiplication and it'll be fine.

06-23-2000, 05:27 PM
Yes, you can do this. If you beleive that glRotate may be faster than a regular matrix multiply operation, you can even figure out which axis to rotate around, and how far, and use a single glRotate.

Caesar
06-24-2000, 08:29 AM
So if I want to substitute an X-rotation, Y-rotation and Z-rotation (in that order) should I create a matrix where I multiply them like XYZ? Because that didn't work =)
I could rotate around Y perfectly, so I'm thinking I should have multiplied them like ZYX instead. Is that right?

BTW, do any of you know of a good camera class? You know, that will simulate a camera and has methods such as "move forward, move left" etc. etc.?
I want an optimized version using a camera matrix and not a class using several transformation functions. I have a camera like that but I want a "clean" camera.