Ich habe Schwierigkeiten, die richtige Multiplikationsreihenfolge für eine endgültige Transformationsmatrix herauszufinden. Ich bekomme immer entweder seltsame Bewegungen oder verzerrte Geometrie. Mein aktuelles Modell wird unten erklärt:
Für einen einzelnen Knoten lautet meine Multiplikationsreihenfolge:
L = S * R * T
woher
L = lokale Transformationsmatrix
S = lokale Skalenmatrix
R = lokale Rotationsmatrix
T = lokale Übersetzungsmatrix
Für die Welttransformation eines Knotens:
W = PW * L
woher
W = Welttransformationsmatrix
PW = Elternwelt-Transformationsmatrix
L = die oben berechnete lokale Transformationsmatrix
Beim Rendern berechne ich für jeden Knoten die Matrix:
MV = Inv (C) * NW
woher
MV = Die Modellansichtstransformationsmatrix für einen bestimmten Knoten
Inv (C) = die inverse Kameratransformationsmatrix
NW = die oben berechnete Welttransformationsmatrix des Knotens.
Schließlich habe ich im Shader die folgende Transformation:
TVP = PRP * MV * VP
woher
TVP = endgültige transformierte Scheitelpunktposition
PRP = Perspektivmatrix
MV = die oben berechnete Welttransformationsmatrix des Knotens
VP = nicht transformierte Scheitelpunktposition.
Beim aktuellen Modell drehen sich untergeordnete Knoten, die eine lokale Drehung aufweisen, beim Transformieren der Kamera merkwürdig. Wo habe ich mit der Multiplikationsreihenfolge einen Fehler gemacht?