TransformVectorノードを使わないで同じことをする (WorldSpace To TangentSpace)

UE4には便利な変換ノードがあります。

f:id:serano_vfx:20210429155606p:plain

めちゃくちゃ利用してるノードなのに中身がどうなってるのかわからないのが
自分的にめたんこ嫌なので同じ事が基本ノードで出来るようになっておきたい、という事で調査。
何度かに分けて簡単に共有できればと思います。
(知識が無さ過ぎてこれが正解なのでは?という所まで持っていくのに1年近くかかった)

 

今回はワールド座標から接空間座標への変換の計算をご紹介
自分で色々計算式しらべて見つけた答えなのですが、間違ってたら連絡ください・・・orz

f:id:serano_vfx:20210429160243p:plain

上がトランスフォームノードでWorldSpace to TangentSpaceを選んだ時
下がWorldSpace to TangentSpaceを計算ノードで行う場合
※他のトランスフォームは別の計算が必要です
 戻すとき(TangentSpace to worldSpace)には別の計算が必要です 


f:id:serano_vfx:20210429161551p:plain

←がTransformVectorノード →が今回の計算、一応合ってるはず(やや不安)