gnu3dkit-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnu3dkit-discuss] hpr or phr??


From: Philippe C.D. Robert
Subject: Re: [Gnu3dkit-discuss] hpr or phr??
Date: Fri, 12 Jul 2002 08:58:03 +0200

Hi,

On Friday, July 12, 2002, at 12:08 AM, Brent Gulanowski wrote:
Hi Phillipe,

I'm having a dog of a time getting my rotations to make sense. As far as I can discern, G3DTransform applies itself to the MODELVIEW matrix directly, and then its up to opengl to discern the rotations. I'm a novice here of course, but it seems that the rotations get put into place along the global X, Y and Z axes in that order (based on my tests). Are not the hpr (heading pitch roll) usually associated with the *local* Y, X and Z axes in that order?

The transformation *matrix* is applied to the modelview matrix, not the G3DTransform! Using a scene graph implies that these matrices get pushed/popped if needed, they are applied by the node who 'owns' them, so if you only have a transformation on a shape, it is applied to its local system, if you add one to the parent group node, the transformation is multiplied to the existing modelview matrix (BTW every graph node has a transformation matrix, normally it is the identity, though). Well, at least this is how you can imagine it, in fact this happens the other way around when traversing, so obviously you (the 3DKit) have to take care from which side you multiply the matrices, and whether you use the transposed matrix or not...:-)

If this is not the case then I somehow somewhen introduced a sever bug!

The problem is that in my editor, the user will have a base rotation for their point of view (say, from the left or looking to the right) and then they are applying a local-z or roll rotation to an object in those terms, so I have to apply them correctly. Because it seems that opengl applies them in a different order, I'm trying to figure out how to use different combinations depending on both the user's location and the relative rotation. Working in global coordinates is giving me a headache.

The problem here is that GL uses a modeview matrix whereas the model and the view is not really the same thing. Have a look at the G3DCamera class to see how this works.

-Phil
--
Philippe C.D. Robert
http://www.nice.ch/~phip




reply via email to

[Prev in Thread] Current Thread [Next in Thread]