最終的な変換行列の正しい乗算順序を把握しようとすると、問題が発生します。私はいつも奇妙な動きか歪んだ幾何学のどちらかを得る。私の現在のモデルは次のとおりです。
単一ノードの場合、乗算順序は次のとおりです。
L = S * R * T
どこで
L =ローカル変換行列
S =ローカルスケールマトリックス
R =ローカル回転行列
T =ローカル変換行列
ノードのワールド変換の場合:
W = PW * L
どこで
W =ワールド変換行列
PW =親世界の変換マトリックス
L =上記で計算されたローカル変換行列
レンダリングするとき、ノードごとにマトリックスを計算します:
MV = Inv(C)* NW
どこで
MV =特定のノードのモデルビュー変換行列
Inv(C)=逆カメラ変換行列
NW =上記で計算されたノードのワールド変換マトリックス。
最後に、シェーダーには休耕変換があります:
TVP = PRP * MV * VP
どこで
TVP =最終的な変換された頂点の位置
PRP =パースペクティブマトリックス
MV =上記で計算されたノードのワールド変換マトリックス
VP =未変換の頂点位置。
現在のモデルでは、ローカル回転を持つ子ノードは、カメラを変換するときに奇妙に回転します。乗算順序のどこが間違っていましたか?