The current matrix, M, defines a transformation of coordinates. For
instance, assume M refers to the modelview matrix. If
v = (v[0],v[1],v[2],v[3]) is the set of object coordinates of a vertex,
and _m points to an array of 16 single- or double-precision floating-point
values m[0],m[1],...,m[15], then the modelview transformation M(v) does
the following:
( m[0] m[4] m[8] m[12] ) ( v[0] )
| | | |
m[1] m[5] m[9] m[13] v[1]
| | | |
M(v) = x
| m[2] m[6] m[10] m[14] | | v[2] |
| | | |
m[3] m[7] m[11] m[15] v[3]
( ) ( )
Where ``x'' denotes matrix multiplication.
Projection and texture transformations are similarly defined.
NNNNOOOOTTTTEEEESSSS
While the elements of the matrix may be specified with single or double
precision, the GL implementation may store or operate on these values in
less than single precision.
EEEERRRRRRRROOOORRRRSSSS
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if ggggllllLLLLooooaaaaddddMMMMaaaattttrrrriiiixxxx is executed between the
execution of ggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of ggggllllEEEEnnnndddd.