I’m trying to write a routine that transforms individual 3D points. What I want to be able to do is call a bunch of OpenGL’s transformation routines, retrieve the transformed projection and modelview matrices with a pair of calls to glGetDoublev(), and then use them to turn local points into absolute universal ones. I understand that this is done by taking the dot-product of [x, y, z, w] and each row of the final transformed matrix, interpreting each of these dot-products as a coordinate of the transformed point.

If what I’ve said so far is wrong, please stop me…

Anyway, what I’m not completely clear on is how to get that “final transformed matrix” from the independent projection and modelview matrices. My guess is that I perform matrix multiplication between them to find it; is that right? And if it is, what order do I multiply them in?

Thanks.