Re: Matrix order

New Message Reply Date view Thread view Subject view Author view

Scott Herod (herod++at++aspen.evt.com)
Fri, 17 Sep 1999 12:30:31 -0600


I think the confusion is with the names of the various pfMatrix
routines. For example does postRot( M, d, x, y, z ) mean compute
M*R where R is the rotation matrix or R*M? I am writing the matrix
multiplication right to left as is standard so that M*R means first
rotate then apply M.

Scott

Angus Dorbie wrote:
>
> What you write on paper w.r.t. row column is meaningless when you have a
> 16 float array, and the convention can be seen as arbitrary. I see your
> point but remember you are implying row columness into an array, this
> comes up all the time w.r.t. OpenGL. Look at the way you declare the
> array vs the vector. The vector by the same arbitrary convention might
> seem like a row not a column.
>
> On the other half of your question, where do we not use standard math
> notation w.r.t. the multiplication order? If you ignore the unrelated
> row column issue where do we use the notation you find objectionable. I
> see the pfVec3 man page lists v*m for the xform operations is this your
> objection?
>
> The pre multiplication and post multiplication are supported in the
> matrix library so you can do either which just flips the matrix order.
> Pre multiplication vs post multiplication of matrices depends on your
> traversal order through the graph. Top down vs bottom up you can
> construct the same matrix using the appropriate multiplication order.
> Then transforming a vertex will go from object to world space of from
> world to eye space depending on the combination of traversal order and
> multiplication order. For model matrix only (ignoring inverse view
> matrix complications).
>
> Cheers,Angus.
>
> Larry Ramey wrote:
> >
> > >From the performer insight page page:
> >
> > The standard order of transformations for a hierarchical scene involves
> > postmultiplying the transformation matrix for a child by the matrix for
> > the
> > parent. For instance, assume your scene involves a hand attached to an
> > arm attached to a body. To get a transformation matrix H for the hand,
> > postmultiply the arm's transformation matrix (A) by the body's (B): H =
> > AB. To transform the hand object (at location h in hand coordinates) to
> > body coordinates, calculate h' = hH.
> >
> > OK, This SOUNDS nice, but anyone who knows matrix math KNOWS you can't
> > multiply
> >
> > 0
> > 1 * 4x4 Matrix
> > 0
> > 1
> >
> > Now you CAN do
> >
> > 0
> > 1
> > 4x4 Matrix * 0
> > 1
> >
> > I am assumeing that this wierdness might have something to do with the
> > fact that performer matrices print out their translation elemnets in the
> > 4th row instead of the 4th column like a NORMAL GL matrix.
> >
> > Can someone PLEASE explain in what freaking order the DCS(SCS,FCS) in a
> > scene graph are multiplied in!!!! I would greatly appreceate it if the
> > word Postmuliply wasn't used at all. Please, Please, Please use normal
> > MATH notation. (4x4)*(column vector) = (transformed vector)
> >
> > If am not an idiot, but something about performer math is really
> > odd........
> >
> > Please if you can CC a copy to my address as I only get info performer
> > in digest mode.
> >
> > Thank you in advance.
> >
> > ---------------------------------------------------------------
> > Larry E. Ramey ramey++at++ccpo.odu.edu
> > 757-683-3439 (CAVE) 757-683-5335 (VEL Lab)
> > "I eat weirder things than you in my cereal" - Zaphod Bebblebrox
> > "Maybe life is like a ride on a freeway/
> > dodgeing bullets while your trying to find your way" - Offspring
> >
> --
> "One of the best-known folk theorems of software engineering is that
> 60% to 75% of conventional software projects are either never
> completed or rejected by their intended users. If that range is
> anywhere near true (and I've never met a manager of any experience
> who disputes it) then more projects than not are being aimed at goals
> which are either (a) not realistically attainable, or (b) just plain
> wrong."
> Eric S. Raymond - The Cathedral and The Bazaar
>
> For advanced 3D graphics Performer + OpenGL based examples and tutors:
> http://www.dorbie.com/
>


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Fri Sep 17 1999 - 11:30:42 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.