http://www.songho.ca/opengl/gl_transform.html
model view learn