[DirectX12] Matrix の Row-major, Culumn-major
Row-major と Culumn-major は、行列のような多次元配列を、どのような順番でメモリーに格納しているかを表す概念である。例えば、下記のような 4×4 行列がある。
a11 a12 a13 a14
a21 a22 a23 a24
a31 a32 a33 a34
a41 a42 a43 a44
Row-major(行順)
メモリー上では a11 a12 a13 a14 a21 a22 … の順番で並んでいる。
C/C++ や Numpy では Row-major でメモリーに格納される。
DirectX などで、Row-major の変換行列(World, View, Projection)をベクトルに掛ける場合は下記のように右に置く。(逆行列も右側に置く)
mul(vector, matrix)
Column-major(列順)
メモリー上では a11 a21 a31 a41 a12 a22 … の順番で並んでいく。
Reference
https://pr0g.github.io/mathematics/matrix/2022/12/26/column-row-major.html