Asuma DirectX como la plataforma, si eso es importante. (Estoy seguro de que no lo es)
Suponiendo que tengo una matriz de escala, rotación y traslación adecuada, ¿en qué orden las multiplico para obtener una matriz mundial adecuada y por qué?
Por "adecuado", quiero decir "podría lanzarlos directamente a DirectX y obtener el marco 3D más utilizado".
Respuestas:
Usualmente es escala, luego rotación y finalmente traslación. Con la denotación matricial (es decir, T para la matriz de traducción, R para la matriz de rotación y S para la matriz de escala) eso sería:
T * R * S
Sin embargo, si desea rotar un objeto alrededor de un cierto punto, entonces es escala, traslación de punto, rotación y, por último, traslación de objeto.
Por qué: Primero desea escalar el objeto para que las traducciones funcionen correctamente. Luego gira los ejes para que la traslación tenga lugar en los ejes ajustados. Finalmente, traduces el objeto a su posición.
En OpenGL puede usar gluLookAt para obtener una transformación completa de la cámara en una sola llamada. Es probable que haya una llamada similar para DirectX.
fuente
La rotación y escala de traslación es la secuencia para realizar la operación.
fuente
Creo que es la rotación y la dialación de traducción
fuente