   MultMatrix and world space
  I have a tank that I position and rotate with one MultMatrix call, rotate the turret and gun with another MultMatrix call, and rotate the gun again with a glRotatef call.  After all that I can easily get the position at the end of the gun.  But how can I get that position as it would be after calling a glLoadIdentity() ?  I need to do this cause I want to draw a little smoke at the end of the gun and my particle engine calls glLoadIdentity() before each particle, and then positions them around a given position, I want the given position to be the tip of the gun.Thanks.   
  You can read back the matrix from OpenGL using glGetFloatv and passing in GL_MODELVIEW_MATRIX and a pointer to a float[16] array.By the way transforming each particle separately like that is not too efficient (in the case of many particles), you may want to look into alternatives in the future.  The matrix read back isn't too efficient either because it causes a stall on the gpu.HTH   ;  Thanks, I did:GLfloat  matrix[16];glGetFloatv(GL_MODELVIEW_MATRIX, &matrix);but got the error:218 C:\Dev-Cpp\Examples\height2\CVehicle.cpp cannot convert `GLfloat (*)[16]' to `GLfloat*' for argument `2' to `void glGetFloatv(GLenum, GLfloat*)' What's wrong?Thanks.   ;  GLfloat matrix[16] declares an array of 16 GLfloat values. If you just say matrix, with no subscript, you have a pointer. &matrix[0] is the same as matrix. Just &matrix is a pointer to a pointer, which is where the GLfloat(*)[16] comes from.   ;  So how should I do it?Thanks.   ;glGetFloatv(GL_MODELVIEW_MATRIX, matrix);Matrix already is a pointer so you don't want to take a pointer to a pointer, &matrix[0] would also work.HTH