Bonjour à tous,
J'avais réussi à programmer les déplacement d'un personnage + camera sur un simple terrain pour mon mini-jeu mais là, je suis en train de faire ceux d'un vaisseau et je me rend compte que c'est autre chose vu qu'il n'y a plus simplement la rotation en Y à gérer
J'ai lu les cours sur les quaternions (enfin, j'ai essayé de suivre à peu près!), et si j'ai bien tout suivi, je devrai faire un truc de ce genre là:
Ca fonctionne...presque. En fin de compte j'ai bien mes rotations pitch et yaw mais j'ai aussi une rotation roll parasite!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 quat_x=Ogre::Quaternion(Ogre::Radian(mouse_y*(-0.002)),Ogre::Vector3::UNIT_X); quat_y=Ogre::Quaternion(Ogre::Radian(mouse_x*(-0.002)),Ogre::Vector3::UNIT_Y); quat_result=quat_x * quat_y; vaisseau->rotate(quat_result);
En fait, plus le pitch est élevé, plus le roll parasite est important (jusqu'à faire demi tour une fois que le pitch est à 180°)
Franchement, je suis dessus depuis un moment, j'ai regardé sur plein de forum EN et je n'ai pas vraiment trouvé de réponse...je rame
Si quelqu'un pouvait me mettre sur la bonne voie, ce sera super sympa!
PS: Je travaille sur Ogre mais j'ai mis mon post ici car je suppose que ça pourrait très bien arrive sur Irrlicht
Partager