glLoadIdentity和glMultMatrix

        glLoadIdentity的作用是将当前模型视图矩阵转换为单位矩阵(行数和列数相同的矩阵,并且矩阵的左上角至右下角的连线上的元素都为1,其它元素都为0),这样可以方便矩阵的乘法运算。

        glMultMatrix矩阵的乘法.

        如:

glLoadIdentity();

glMultiMatrix(A);

glMultiMatrix(B);

glMultiMatrix(C);


针对行向量和当前矩阵,上述代码可等价于:

(vx vy vz 1) *C*B*A

结果是一个1行4列的矩阵。


你可能会奇怪,为什么程序和实际矩阵的运算顺序是相反的呢。可以这么想像一下,glMultiMatrix先将矩阵加入到一个栈中保存,当所有的glMultiMatrix操作都完成后,再依次从栈中将缓存的矩阵取出并做相应的乘法操作。由于栈结构是先进后出的数据结构,所以可以猜想glMultiMatrix在执行时并没有直接将矩阵进行计算,而是先将矩阵放在了栈缓存中。


你可能感兴趣的:(iOS,Android)