glm - décomposition de mat4 en translation et en rotation?
Pour les fins de lerping j'ai besoin de décomposer une matrice de 4x4 dans un quaternion et un vec3.
Saisissant le quaternion est simple, comme vous pouvez juste passer la matrice dans le constructeur, mais je ne peux pas trouver un moyen de saisir la traduction.
Il doit sûrement y avoir un moyen?
OriginalL'auteur Silverlan | 2013-07-29
Vous devez vous connecter pour publier un commentaire.
Il ressemble glm 0.9.6 prend en charge la matrice de décomposition
http://glm.g-truc.net/0.9.6/api/a00204.html
OriginalL'auteur valmo
glm::vec3(m[3])
est le vecteur position(en supposant quem
estglm::mat4
)1
dans la quatrième ligne). Dans GLM, unmat4
est un 4-tableau devec4
, où chaquevec4
représente une colonne; les tableaux sont de zéro-indexées,[3]
obtient la quatrième colonne. Puisglm::vec3(...)
le convertit en un vec3, en rejetant la quatrième (non utilisé), et de vous donner la traduction de la distance.OriginalL'auteur kerim
À la version glm-0.9.8.1 vous devez inclure:
#include <glm/gtx/matrix_decompose.hpp>
Pour l'utiliser:
Garder à l'esprit que les quaternions n'est pas correcte.
Elle renvoie son conjugué!
Pour résoudre ce ajouter à votre code:
rotation=glm::conjugate(rotation);
OriginalL'auteur Konstantinos Roditakis