逆転置行列

提供: MonoBook
2023年12月22日 (金) 04:44時点におけるAdministrator (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

逆転置行列(inverse transpose)とは、ある行列逆行列にし、さらに転置行列にしたものです。

 float4x4 worldInverseTranspose = transpose(inverse(wolrd));

主に頂点データの法線ワールド座標変換する際に使用されます。 以下の例ではメモリアライメントの調整が面倒なのでfloat4の法線とfloat4x4のワールド座標の逆転置行列を使用しています。

 float4 normalModelSpace = float4(vin.Normal, 0.0);
 float3 normalWorldSpace = normalize((normalModelSpace * params.WorldInverseTranspose).xyz);