Estoy experimentando dificultades tratando de averiguar el orden de multiplicación correcto para una matriz de transformación final. Siempre obtengo movimientos extraños o geometría distorsionada. Mi modelo actual se explica a continuación:
Para un solo nodo, mi orden de multiplicación es:
L = S * R * T
dónde
L = matriz de transformación local
S = matriz de escala local
R = matriz de rotación local
T = matriz de traducción local
Para la transformación del mundo de un nodo:
W = PW * L
dónde
W = matriz de transformación mundial
PW = matriz de transformación del mundo padre
L = la matriz de transformación local calculada anteriormente
Al renderizar, para cada nodo calculo la matriz:
MV = Inv (C) * NO
dónde
MV = la matriz de transformación de vista de modelo para un nodo particular
Inv (C) = la matriz de transformación de cámara inversa
NW = la matriz de transformación del mundo del nodo calculada anteriormente.
Finalmente, en el sombreador tengo la siguiente transformación:
TVP = PRP * MV * VP
dónde
TVP = posición final del vértice transformado
PRP = matriz de perspectiva
MV = matriz de transformación del mundo del nodo calculada anteriormente
VP = posición de vértice no transformada.
Con el modelo actual, los nodos secundarios que tienen rotación local, rotan de manera extraña al transformar la cámara. ¿Dónde me equivoqué con el orden de multiplicación?