DirectX: déplacer la caméra en fonction de la souris - C++ - Programmation
Marsh Posté le 21-02-2006 à 14:17:42
Personellement je crée deux classes :
Chaque classe à une fonction ProcessInput(). Cette fonction est appelée a chaque frame rendue.
Le principe est simple :
A chaque appel du ProcessInput(), la classe de gestion de la souris récupère les nouvelles positions X, Y, boutons etc. (via CurrentMouseState), et bouge la caméra en fonction (avec des fonctions Sin, Cos,Tan...Mais y a surement moyen en agissant directement que la matrice View du Device Direct3D)
En esperant que ça t'aide...
Marsh Posté le 21-02-2006 à 14:34:15
Euh... Pas vraiment
Je n'ai pas besoin du clavier en fait. Je veux juste afficher une série de points, et tourner autour à l'aide de la caméra...
Marsh Posté le 21-02-2006 à 15:24:21
Bah le systeme reste le meme :
Utiliser DirectInput pour obtenir les mouvements de la souris (variations en position X, Y)
Interpreter ces mouvements pour modifier la vue (soit avec des cosinus, sinus etc, soit en changeant la matrice View du DeviceD3D)
Marsh Posté le 21-02-2006 à 16:20:23
Je me doute bien, mais j'avoue ne pas avoir pipé grand chose aux matrices.
Du coup j'ai modifié les exemples du SDK pour utiliser la classe CD3DArcBall qui fait tout le boulot...
Bon sinon le souci vient des fonctions DrawPyramid et DrawCube. Je pense que c'est parce que je dois utiliser des matrices propres à chacun de ces objets au lieu d'utiliser la matrice World globale. Je testerai ça ce soir.
Pour le moment, je me contente juste de dessiner la pyramide, sans la faire tourner sur elle même, et j'arrive à faire tourner la caméra autour avec la souris, donc c'est un bon point déjà
Marsh Posté le 21-02-2006 à 14:03:26
Bonjour à tous,
voilà quelques temps que je tente désespérement de tourner autour d'un objet en fonction des mouvements de la souris.
J'ai trouvé dans les exemples du SDK des projets qui utilisaient une classe CD3DArcBall. J'ai recopié du code depuis ces exemples, mes objets s'affichent, mais je n'arrive pas à tourner autour des objets.
Ca fait 2 jours que je cherche dans tous les sens, sans succès, alors je vous mets le code, parce que là je galère trop...
Fichier CPP
Fichier H
Merci d'avance