Bonjour,
Je suis actuellement en DUT Informatique, et j'ai un projet OpenGL (un jeu vidéo) à faire. C'est un jeu de shoot spatiale en vue cockpit
Mon problème vient du fait que je voudrait attacher le cockpit à la caméra.
Pour désigner mon vaisseaux (et tout les mobiles), j'ai 3 vecteurs dans ma classe Mobile : Direction (0,1,0 de base), normal(0,0,1), orthogonal(1,0,0), tout les trois normé, qui forme donc une nouvelle base vectorielle.
Quand le vaisseau se déplace les vecteurs subissent une rotation : autour de l'axe normal pour mouvement de souris horizontale, autour de l'orthogonal pour les verticaux, et autour de la direction pour le roulis.
Mes déplacements doivent être bien codé puisque quand dans le gluLookAt j'utilise position du mobile, position + direction, normal, ma vue se deplace très bien dans ma scene, fluide, sans probleme.
Le probleme vient quand je veut placer le modèle 3D, je n'arrive pas a trouver les bon angle et axe pour les glRotate...
- Y'a t'il des équations pour pouvoir faire correspondre les axe d'un repère (celui de l'objet quand il est en 0,0,0, regardant vers 0,1,0 et avec pour normal 0,0,1) à ceux d'un autre (celui de mon mobile)? Matrice etc... exprimer les coordonnée des points de mon modèle dans celle de mon mobile je sais faire, un bête changement de repère, mais les repositionnées ensuite? (sachant que mon modèle est charger sous forme de liste d'affichage, je ne peut pas changer directement les coordonnées de mes points...)
- Sinon une astuce pour trouver les angles qui permettrait de faire les rotations de manière a repositionner le repère de l'objet comme celui du mobile?
Je sais que c'est simple normalement, mais la je sèche, peut être de trop y travailler dessus, donc je prendrai n'importe quelle début de pistes. Même si mon explication est peut être un peu confuse.
Merci d'avance!
Partager