PDA

View Full Version : Preserving the order of trasformations



MKAI
06-17-2003, 02:56 AM
Hi
As you know, in OpenGL, successive transformations affect in the reverse order they are issued. For example in the following code segmnent:

glMatrixMode(GL_MODELVIEW);
t1;
t2;
t3;
DrawShape();

The transformations are applied with the order t3 then t2 and finally t1.

I need a way (except using a data structure like stack to reverse the default order of transformations) to force OpenGL to transform in the order that I write in code. Any idea?

Thanks
MKAI

nexusone
06-17-2003, 03:48 AM
I am guessing it will be easier to change your code then try and change openGL.


Originally posted by MKAI:
Hi
As you know, in OpenGL, successive transformations affect in the reverse order they are issued. For example in the following code segmnent:

glMatrixMode(GL_MODELVIEW);
t1;
t2;
t3;
DrawShape();

The transformations are applied with the order t3 then t2 and finally t1.

I need a way (except using a data structure like stack to reverse the default order of transformations) to force OpenGL to transform in the order that I write in code. Any idea?

Thanks
MKAI

Relic
06-17-2003, 04:15 AM
This is because matrices in OpenGL are left-multiplied.
v' = T1 * T2 * T3 * v;

What you want is right-multiplied matrices
v' = v * T1 * T2 * T3;

The only (very simple) way to do that in OpenGL is to write your own matrix multiplication routines and load the transposed matrix at the end.

Deiussum
06-17-2003, 04:39 AM
I could swear I answered this post too. Oh wait! It must be a double post! http://www.opengl.org/discussion_boards/ubb/mad.gif

[This message has been edited by Deiussum (edited 06-17-2003).]

MKAI
06-18-2003, 03:20 AM
Excuse me, Excuse me, Exceuse me!

Sorry for multiple posts. My browser has a problem and the pages weren't updated. Sorry!

And about transformations: What is the matrix for rotating a point around the arbitrary vector
(x, y, z). (I know it for (1, 0, 0), (0, 1, 0) and (0, 0, 1) vectors).

Thanks

Deiussum
06-18-2003, 04:14 AM
Check the apendices of the red book (It's available online, just do a google search for it.) It gives details on how matrices around an arbitrary vector are setup. You will need to understand some of the notation used, which can be a little daunting at first, but if you sit down and really try to figure it out, you should be able to.

Coconut
06-18-2003, 04:26 AM
Have you tried searching google using keywords like "rotation" "matrix" and "axis"?