差分

ナビゲーションに移動 検索に移動

逆転置行列

674 バイト追加, 2023年12月22日 (金) 04:44
ページの作成:「'''逆転置行列'''(inverse transpose)とは、ある行列逆行列にし、さらに転置行列にしたものです。 <source lang="c"> float4…」
'''逆転置行列'''(inverse transpose)とは、ある[[行列]]を[[逆行列]]にし、さらに[[転置行列]]にしたものです。

<source lang="c">
float4x4 worldInverseTranspose = transpose(inverse(wolrd));
</source>

主に頂点データの[[法線]]を[[ワールド座標変換]]する際に使用されます。
以下の例では[[メモリアライメント]]の調整が面倒なのでfloat4の法線とfloat4x4の逆転置行列を使用しています。
<source lang="c">
float4 normalModelSpace = float4(vin.Normal, 0.0);
float3 normalWorldSpace = normalize((normalModelSpace * params.WorldInverseTranspose).xyz);
</source>

[[category: 3DCG]]

案内メニュー