「逆転置行列」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
(ページの作成:「'''逆転置行列'''(inverse transpose)とは、ある行列逆行列にし、さらに転置行列にしたものです。 <source lang="c"> float4…」)
 
 
6行目: 6行目:
  
 
主に頂点データの[[法線]]を[[ワールド座標変換]]する際に使用されます。
 
主に頂点データの[[法線]]を[[ワールド座標変換]]する際に使用されます。
以下の例では[[メモリアライメント]]の調整が面倒なのでfloat4の法線とfloat4x4の逆転置行列を使用しています。
+
以下の例では[[メモリアライメント]]の調整が面倒なのでfloat4の法線とfloat4x4の[[ワールド座標]]の逆転置行列を使用しています。
 
<source lang="c">
 
<source lang="c">
 
  float4 normalModelSpace = float4(vin.Normal, 0.0);
 
  float4 normalModelSpace = float4(vin.Normal, 0.0);

2023年12月22日 (金) 04:44時点における最新版

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

 float4x4 worldInverseTranspose = transpose(inverse(wolrd));

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

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