begin process at 2010 02 10 17:17:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

DirectX

 > 

DirectX Camera à la souris


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

DirectX Camera à la souris

dimanche 15 juillet 2007 à 14:42:54 | DirectX Camera à la souris

seb2086

Membre Club
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.
lundi 16 juillet 2007 à 13:16:03 | Re : DirectX Camera à la souris

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Je n'ai pas mes sources ici, mais je crois que j'ai fait ça très simplement avec D3DXMatrixRotationYawPitchRoll.

lundi 16 juillet 2007 à 13:55:19 | Re : DirectX Camera à la souris

seb2086

Membre Club
Merci de ta réponse,

mais en fait il faudrait que je recupere la variation de l'angle dans une variable de type float.
par exemple dans float CameraAngleY je voudrait recuperer la valeur de l'angle.

Donc je sais pas si peux avec cette fonction.

En fait moi je faisait comme ca :

CameraAngleX -= EtatSouris.lX *0.002;

J'ai l'angle de la camera egal à la position X de la souris * par une valeur.

Mais quand je fais ca la camera part dans tout les sens.
Donc si tu a une idée ;)

Merci
lundi 16 juillet 2007 à 15:43:48 | Re : DirectX Camera à la souris

THEwarrior333

Regardes dans le SDK, tu as de bons exemples sur la gestion de la camera. Tu as même DXUT qui propose des classes de gestion de camera: regardes comment ils font.
Sinon une méthode est de bouger ton vecteur directeur selon l'écart de position de la souris. Ensuite tu mets à jour ta matrice de vue D3DMatView.
lundi 16 juillet 2007 à 18:13:24 | Re : DirectX Camera à la souris

seb2086

Membre Club
Oui j'avais deja regardé mais j'ai pas reussi à comprendre leur code.

Par contre je voudrais bien que tu m'explique comment faire en bougeant le vecteur selon l'ecart de position de la souris.
Je pense que cette méthode se rapproche bien de ce que j'ai commencé à coder pour le clavier.

Si tu pouvais m'espliquer en détail.

Merci
lundi 16 juillet 2007 à 18:29:36 | Re : DirectX Camera à la souris

seb2086

Membre Club
Merci pour votre aide mais en fait c'est bon je vais utiliser ce que j'avais fait.

En fait mon problème c'et que ca tournait beaucoup trop vite et que je ne voyait rien.

Pour tester la camera j'ai juste charger un cube mais le probleme je pense c'est que le cube etait vraiment tout petit et comme je n'ai pas regler la camera en fonction de la taille de l'objet ca tourne beaucoup trop vite.

Donc j'ai reduit la vitesse de rotation CameraAngleY -= EtatSouris.lY *0.000000000002f et la ca tourne à une vitesse correcte.

Voila encore désolé de vous avoir embêter avec ca.

Merci en tout cas pour votre aide.
lundi 16 juillet 2007 à 19:13:44 | Re : DirectX Camera à la souris

THEwarrior333


Tu ne nous embêtes pas :)
En fait ton problème vient du fait que tu ne bases pas tes mouvements sur le temps. Toutes tes animations doivent évoluer en fonction du temps. Donc tu définis une vitesse pour la souris et tu calcules le nouvel angle par:

angleX +=vitesse / (temps_écoulé) * ecart_sourisX;

lundi 16 juillet 2007 à 19:15:54 | Re : DirectX Camera à la souris

seb2086

Membre Club
Merci,

Je le recupere comment le temps écoulé ?
Et ecart_sourisX correspond à quoi ?

Merci de ta réponse.
lundi 16 juillet 2007 à 19:24:35 | Re : DirectX Camera à la souris

THEwarrior333


Pour le temps ecoule c'est tres simple (cf DXUT par ex). C'est la différence entre les temps mesurés à chaque frame (chaque rendu).
Je ne sais pas comment tu obtiens l'état de la souris mais dans le chunk de la souris, ecart_sourisX et ecart_sourisY sont inclus.
lundi 16 juillet 2007 à 19:51:47 | Re : DirectX Camera à la souris

seb2086

Membre Club
J'ai fait ca :

        int temps1, temps2, difference ;
        temps1 = GetTickCount() ;
        difference = temps1 - temps2 ;

        CameraAngleX += 0.0000000000002f / difference * EtatSouris.lX ;
        temps2 = temps1 ;

Mais ca fait la même chose qu'avant.
en fait la rotation se fait mais elle ne s'arrête plus.
En fait dés que la souris fait un mouvement la rotation ne s'arrête plus alors que moi je voudrais que la rotation s'arrête lorsque la souris ne bouge plus.

1 2 3

Cette discussion est classée dans : arrive, directx, souris, camera


Répondre à ce message

Sujets en rapport avec ce message

la souris avec glut [ par laptop ] JE voudrait que les mouvement de la souris sois coordonnéavec les mouvement de l'ecran c a dire qd on monte avec la souris l'ecran aussi comme dans l windows et la souris [ par dletozeun ] bonjour, Dans un programme utilisant Opengl, j'essais d'utiliser la souris afin de bouger la vue de la camera. La vue bouge tres bien sauf que des qu souris et camera openGL [ par yuriashford ] Bonjour je suis nouveau sur cppfrance alors je ne sais pas si la question a ete pose  si c le cas je m'excuse a l'avance. Bon je créé actuellement une directx position souris [ par sam20 ] Salut a tous.J'ai entendu parler du picking mais j'ai du mal a trouver.Je suis en train de faire un un jeu,j'ai le monde 3d,le hero,les decors.je cher Aquisition de video en C,C++ [ par NnGgHh ] Bonjour, pardon pour les accent, mon clavier est japonais et je n'arrive pas a les activer. Je developpe en C++ sur Mac (c'est proche de la programmat Programmer un driver souris USB [ par Choumoumou ] Bonjour !J'aimerai pouvoir utiliser deux souris sur windows. À l'instar des drivers souris normaux (logitech, etc), j'aimerai programmer un driver en Gestion de la souris listview c++ api Win32 [ par Spunk62 ] Bonjour, je voudrai savoir comment récupérer la cellule d'une listview avec un click de la sourisvoila ce que j'ai fait:       case WM_LBUTTONUP:      DESACTIVER SOURIS RICHEDIT API WIN32 C [ par lectpe ] Bonjour,je travaille avec l'API WIN32 en C et je voudrais savoir s'il existe une fonction pour désactiver la souris au dessus d'un richedit.Je m'expli control de ma camera [ par brico07 ] bonjour,je suis débutante, et j'aimerais controller ma camera  (MTV 54g10), mais je suis coincé À tout les bouts.le sequence de communication est:cont Déclencher un événement de la souris. [ par marocware ] [b]Bonjour,[/b][u][/u] [b]Je veux créer un programme avec n'importe quel langage qui permet de déclencher l'événement clic gauche de la souris chaque


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,886 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales