矩阵的行主序与列主序

1.矩阵在内存中的存储

 

    不管是D3D还是OpenGL,使用的矩阵都是线性代数标准的矩阵,只是在存储方式上有所不同。分别为:行主序(Direct3D),列主序(OpenGL)

 

    存储顺序说明了线性代数中的矩阵如何在线性的内存数组中存储。

    例如:内存中使用一个二维数组m存储矩阵,第i行第j列的表示方法分别为: 

    行主序:m[i][j]

    列主序:m[j][i]

 

   线性代数意义的同一个矩阵,在d3d 和 openGL 中的存储顺序

      线代:a11,a12,a13,a14                  d3d :  a11,a12,a13,a14       OpenGL: a11,a21,a31,a41

                  a21,a22,a23,a24                             a21,a22,a23,a24                        a12,a22,a32,a42

                  a31,a32,a33,a34                             a31,a32,a33,a34                        a13,a23,a33,a43

                  a41,a42,a43,a44                             a41,a42,a43,a44                        a14,a24,a34,a44

 

2.行主序的矩阵与列主序的矩阵如何转换呢

 

    不难发现,M=MT


你可能感兴趣的:(图形)