OpenGL transformation matrix
People easily get confused with OpenGL transformation matrices and one way to understand them is that every transformation matrix is actually doing transformation of "Current drawing coordinate system", let's try to understand this way rather than thinking of the transformation applied to objects. So now the order of definition of the transformations in OpenGL becomes natural. For example, when you begin with glTranslate(), every objects drawn after that are translated because the whole drawing coordinate system itself is translated and imagine now we further issue a glRotate() command, all objects drawn from now on would be both rotated and also translated. This also helps to understand how hierarchical transformation works.













