Quaternions son buenos para interpolar las rotaciones entre ellos. Hasta aquí todo bien.¿Puedo interpolar la rotación de dos Quaternions creados a partir de Yaw/Pitch/Roll?
Si tengo un juego de red, ¿será suficiente transferir la rotación como vector3f o debería usar un quaternion? Para que el juego sea más suave, quizás tenga que interpolar entre la última rotación enviada y la actual.
¿Pero puedo interpolar las rotaciones entre dos Quaternions que se crearon a partir de Yaw/Pitch/Roll?
Quaternion a = Quaternion.FromYawPitchRoll(x1,y1,z1);
Quaternion b = Quaternion.FromYawPitchRoll(x2,y2,z2);
a.Interpolate(b, value); // will this work correctly?
Debe mencionar (como lo hizo @Justicle) que plain-ol 'lerp funciona muy bien para cuaterniones en muchos casos. –
Leí que las rotaciones de Euler no son inequívocas, por lo que no puede interpolar entre ellas. ¿Convertirlos en cuaterniones realmente los hace inequívocos, lo que me parece un poco ilógico? – codymanix
@codymanix: Tal vez, pero es el caso. Tampoco puedes usar ángulos euler directamente.Como los cuaterniones tienen un grado adicional de libertad, evitan todo el problema con el bloqueo de cardán, sin importar cuál haya sido la representación anterior, ni a qué se convierte después. Angulos de Euler -> quaternion -> matriz es completamente kosher. –