[DirectX12] Matrix の Row-major, Culumn-major

[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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA