Stuart Levy (slevy++at++ncsa.uiuc.edu)
Sat, 18 Sep 1999 09:41:31 -0500 (CDT)
Yes yes yes, *this* is the way to explain it! I get very frustrated with
descriptions that talk about multiplying A "before" or "after" B, since
after-ness doesn't have a unique meaning; you might imagine a sequence of
OpenGL calls like
glMultMatrixf( B );
glMultMatrixf( A ); /* does this mean "A after B"?? */
or "after" might refer to reading the algebra left-to-right,
in which case it changes sense according to whether you write p*M or M*p!
But describing a matrix as being multiplied on the local-space
vs. world-space side is unambiguous no matter which way you think of
writing the algebra.
Another way to disambiguate would be to write matrix expressions
that explicitly include transformed points, e.g. you might describe
postRot( M, d, x,y,z ) as changing M into M' so that, for any point p,
p * M' = p * M * Rotation(d,x,y,z)
in which it's also clear that the rotation applies to world space,
not local/object space. And this kind of algebraic description makes it
easier to write down what the result should be after several steps.
Stuart Levy, slevy++at++ncsa.uiuc.edu
This archive was generated by hypermail 2.0b2 on Sat Sep 18 1999 - 07:41:38 PDT