J'expérimente l'utilisation de vecteurs d'angle d'axe pour les rotations dans mon moteur de jeu amateur. C'est un vecteur à trois composantes le long de l'axe de rotation avec une longueur de rotation en radians. Je les aime parce que:Combiner les vecteurs d'axe de rotation
- Contrairement à matrices quats ou rotation, je peux réellement voir les chiffres et visualiser la rotation dans mon esprit
- Ils sont un peu moins de mémoire que escouades ou matrices.
- Je peux représenter des valeurs en dehors de la plage de -Pi à Pi (Ceci est important si je stocke une vitesse angulaire)
Cependant, j'ai une boucle serrée qui met à jour la rotation de tous mes objets (des dizaines de milliers) en fonction de leur vitesse angulaire. Actuellement, la seule façon que je connaisse de combiner deux vecteurs d'axe de rotation est de les convertir en quaternions, de les multiplier, puis de convertir le résultat en un axe/angle. Grâce au profilage, j'ai identifié cela comme un goulot d'étranglement. Est-ce que quelqu'un sait une approche plus directe?
Est-ce que cela signifie que 3 valeurs représentent des rotations séquentielles sur 3 axes orthogonaux? Fondamentalement, les angles euler tels que «[phi, psi, thêta]» peuvent représenter «RX (phi) * RY (psi) * RZ (thêta)». Si c'est le cas, vous devez trouver un moyen de construire la matrice de rotation 3x3 et en tirer l'angle d'axe. – ja72
Non, je n'utilise pas les angles euler. C'est l'angle d'axe où la longueur du vecteur est l'angle. – Dwayne