Os pongo un ejemplo. Tengo un dado que inicialmente tiene el 1 hacia arriba y el 6 hacia abajo. Quiero una forma para guardar estas rotaciones en un fichero para luego cargarlas y que el efecto sea el mismo. Si roto 90º en Y, luego 90º en X y luego -90º en Y, el efecto quedaría distinto a si roto el total de la suma de rotaciones (0Y, 90X).
- Debería usar quaterniones y guardar los valores x,y,z,w ?
Deberías pensar en lo que estás haciendo. Rotas 90 en Y y 90 en X, con lo cual has modificado los ejes del objeto. Lo que antes era Y en la última rotación será X.
Prueba a guardar todas las rotaciones que haces en el mismo orden y así no tendrás problemas. O abre los dedos pulgar, índice y medio de tus manos, asígnales un eje a cada uno y comprueba cómo cambian esos ejes a medida que los rotas.
He estado haciendo un "simulacro" de las rotaciones que describes y quedan algo así:
90º en Y (el eje Z pasa a ser el nuevo X)
90º en X (y por tanto en el antiguo Z, y ahora el Y es el Z y el X es el Y)
-90º en Y (que era el antiguo X, así que el Y es el X, el Z es el Z y el X es el Y)
tendrías que rotar 90º en Y, 90º en Z y -90º en X para obtener la misma rotación que al principio, o algo así.
Pilla la matriz de transformación del dado o en tu caso la de rotación, y guárdala en un archivo. Aunque para eso mejor la guardas como un quaternion, como tú dices, que ocupa menos...
Saludos