J'utilise (un peu à l'aveuglette) les quaternions pour les rotations dans la simulation physique des corps rigides depuis un certain temps, mais j'ai récemment commencé à être confus sur la façon dont les rotations des quaternions sont généralement définies et sur la façon dont je le fais (d'après le livre Physics for game developers).
Dans le livre, vous avez une vitesse angulaire angVel et un pas de temps dt ainsi qu'une orientation initiale.
Il se déroule comme suit
orientation += 0.5*orientation*angVel * dt
où la multiplication quaternion-vecteur est effectuée en convertissant d'abord le vecteur xyz en quaternion xyz,0
Cela fonctionne, mais partout ailleurs la procédure consiste plutôt à faire un quaternion, qui définit l'angVel intégré dans le temps, sur dt, puis à le multiplier sur l'orientation. Cela convertit essentiellement angVel*dt en une rotation (ce qui est parfaitement logique) qui est ensuite appliquée à l'orientation originale par multiplication, comme on le voit ici avec une meilleure syntaxe https://math.stackexchange.com/questions/39553/how-do-i-apply-an-angular-velocity-vector3-to-a-unit-quaternion-orientation
Ma question est de savoir ce que 0,5 * quaternion * vecteur * scalaire signifie conceptuellement es dans ce qui précède et ce que en ajoutant ce quaternion résultant à mon orientation est, considérant que vous multipliez habituellement, et non pas ajouter, pour tourner.