OpenGL中所有的变换都是对坐标系的变换。
假设有一个三维坐标系O-XYZ,用矩阵M表示(加入齐次坐标)即
|1 0 0|M = |0 1 0 ||0 0 1|
这就是OpenGL中的单位矩阵(没有加入齐次坐标),第一列为X轴方向的单位向量,第二列为Y轴方向的单位向量,第三列为Z轴方向的单位向量。
对于给定的任意一点P(x, y ,z,),则有
|0 0 1| | z | | 0*x + 0*y + 1*z | | z |
M * P = |1 0 0| | x | | 1*x + 0*y + 0*z | | x ||0 1 0| * | y | = | 0*x + 1*y + 0*z | = | y |
即任意一点乘以单位矩阵坐标不会发生变化。
如果想改变点的坐标,只需要改变X、Y、Z轴方向的单位向量的模和方向即可。