IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Moteurs 3D Discussion :

[OGRE] Camera & regard souris


Sujet :

Moteurs 3D

  1. #1
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 83
    Points : 76
    Points
    76
    Par défaut [OGRE] Camera & regard souris
    Bonjour,

    Je code actuellement sur Ogre une caméra libre pour se balader dans l'application. Les mouvements avant, arrière, gauche et droite avec les flèches directionnelles fonctionnent, mais le regarde avec la souris non.

    Voila comment je procède :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bool mouseMoved(const OIS::MouseEvent &arg) {
    	_theta -= arg.state.X.rel * _sensitivity;
    	_phi -= arg.state.Y.rel * _sensitivity;
    	calculerVecteur();
    }
    A chaque mouvement de la souris, la méthode mouseMoved est appelée, on récupère le mouvement relatif en X et Y et on le multiplie par la sensibilité. Ensuite, on appelle la méthode de calcul du vecteur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    void calculerVecteur()
    {
        static const Ogre::Vector3 up(0,1,0); 
     
        if (_phi > 89)
            _phi = 89;
        else if (_phi < -89)
            _phi = -89;
     
        double r_temp = cos(_phi*M_PI/180);
        _forward.Z = sin(_phi*M_PI/180);
        _forward.X = r_temp*cos(_theta*M_PI/180);
        _forward.Y = r_temp*sin(_theta*M_PI/180
        _left = up.crossProduct(_forward);
        _left.normalise();
     
        _target = _position + _forward;
    }
    _target correspond au vecteur que j'utilise dans la fonction lookAt().

    Au final, quand je bouge la souris ça regarde un peu ou ça le veut bien, c'est incontrôlable.

    J'utilise la bonne méthode?

    merci pour votre aide.

  2. #2
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Ce fil peut être utile (soit en te fournissant le bon calcul, soit en t'indiquant une autre solution).

Discussions similaires

  1. Mouvement de camera par la sourie
    Par LastSpear dans le forum OpenGL
    Réponses: 9
    Dernier message: 30/09/2009, 19h58
  2. Regard en direction de la souris
    Par frog43 dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 16/10/2007, 16h32
  3. Camera qui regarde vers le bas
    Par NiamorH dans le forum Ogre
    Réponses: 3
    Dernier message: 13/10/2007, 18h40
  4. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo