DirectX Camera à la souris

Résolu
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010 - 15 juil. 2007 à 14:42
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010 - 17 juil. 2007 à 21:27
Bonjour,

Je voudrais que la souris gère les rotations de la camera mais je n'y arrive pas.
J'arrive à gerer le deplacement en translation de celle-ci.
J'utilise les vecteurs pour les deplacements.
Merci.

28 réponses

THEwarrior333 Messages postés 192 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 30 janvier 2008
16 juil. 2007 à 23:57
Je t'avais conseillé d'initialiser time2 à zero mais c'est une erreur: il faut l'initialiser à GetTickCount.
Autrement comme ça je ne vois pas d'erreur. Si cela ne marche pas mieux, jette un oeil à un code existant sur le net ou tout simplement dans le SDK.
Bon courage!<endl></endl>
0
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010
17 juil. 2007 à 11:52
Ok merci pour ton aide.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
17 juil. 2007 à 14:00
Pour le déplacement de la caméra, il faut que tu utilises aussi la différence de temps, sinon tu auras des problèmes. Par exemple, sur un PC plus rapide, le nombre de frames par secondes serat plus grand, et le déplacement risque d'être plus rapide.

Pour voir ou tu es, tu peut mettre en place une skybox (Une grand boite tout autour de la scène). Tu peux aussi afficher les angles en permance (Communément appelés Yaw Pitch et Roll).

Pour ce qui est de la différence de temps entre deux frames, je sais pas si c'est une bonne idée d'utiliser GetTickCount. En effet, ton PC doit faire plus de 1000 frames par secondes vu que tu à l'air de tourner à vide... Donc différence doit pas valloir grand chose à part 0 ou 1, vut que c'est des millisecondes. Tu devrais insérer un Sleep() dans ta boucle de rendu si tu en as pas ou utiliser QueryPerformanceCounter.
0
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010
17 juil. 2007 à 14:07
D'accord,

tu n'aurais pas une source avec le deplacement de la camera avec cette methode pour me montrer ?

Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010
17 juil. 2007 à 17:11
Merci beaucoups pour votre aide.
Et merci pour la source 'est exactement ce qu'il me faut.

Je vais decortiquer le code pour en extraire ce qui m'interresse.
Si j'ai un probleme je demanderai Merci.
0
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010
17 juil. 2007 à 21:01
C'est bon grâce à cette source j'ai pu résoudre mon problème merci.
0
THEwarrior333 Messages postés 192 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 30 janvier 2008
17 juil. 2007 à 21:22
Cool!

Pour info, pourrais-tu stp expliquer en deux mots d'où venait le problème?
0
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010
17 juil. 2007 à 21:27
Beh le souci venait comme tu l'avait dit du fait que je ne gerer pas les mouvements en fonction du temps

Donc je recupere le temps ecoulé comme ca

TempsCourant     = timeGetTime() ;
 DifferenceTemps  = (float)((TempsCourant - AncienTemps) * 0.001) ;
 AncienTemps      = TempsCourant ;

et ensuite grâce à la méthode D3DXMatrixRotationAxis j'effectue mes rotations voila.

Encore merci de m'avoir aidé et si quelqu'un veux plus de renseignements qu'il poste un message.

Merci.
0
Rejoignez-nous