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

OpenGL Discussion :

Vue du joueur (gluLookAt) différent type de vue.


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 66
    Par défaut Vue du joueur (gluLookAt) différent type de vue.
    Bonjour,

    Quand j'ai commencé mon projet j'ai copié collé un bout de code pour géré la vue qui me convenait bien :

    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
    19
    20
    21
    22
    23
    24
    25
    26
     
    void player::look()
    {
    	  gluLookAt(
                           position.X,position.Y,position.Z,
                           target.X,target.Y,target.Z,
                           0,0,1
                           );
    }
     
    void player::vectorsFromAngles()
    {
        static const vector3d up(0,0,1);
        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.normalize();
     
        target = position + forward;
    }
    Ce code permet de donner les degrés de libertés nécessaire a la simulation d'une vue a la "FPS"..

    Le problème c'est que cette vue n'est "compatible" qu'avec un monde plat sur un plan x,y.
    Je m'explique, dans mon projet le joueur se situe sur une planète cubique.
    Quand le joueur se trouve sur la face du haut de la planète la vue actuel convient parfaitement.
    Mais quand je change de face (de planète) j'aimerai changé les degrés de liberté de la vue pour avoir le même rendu que sur la face du dessus (alors que les axe du nouveau plant on changé a cause du changement de face de la planète).

    Je sais pas si j'ai été claire, si vous m'avez compris... Si vous avez des questions n'hésitez pas.

    Merci d'avance

    Cordialement,
    Baton

  2. #2
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 817
    Par défaut
    Salut

    Citation Envoyé par baton Voir le message
    j'ai copié collé un bout de code
    Hum... dans le style "ça fonctionne, mais je ne sais pas pourquoi..."

    Tu as le code pour la face xy, ce n'est pas très compliqué pour l'avoir sur une autre face. Par exemple si tu prends la face xz, le y devient z, le z devient y, tu modifies les équations en conséquence (avec peut-être un signe - à rajouter, ça dépendra de l'orientation), et ça devrait rouler. En n'oubliant pas de changer le vecteur up pour qu'il pointe dans la bonne direction (et dans le gluLookAt également)
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 66
    Par défaut
    Citation Envoyé par plegat Voir le message
    Hum... dans le style "ça fonctionne, mais je ne sais pas pourquoi..."
    Je ne m'en suis pas caché :p

    Au début je ne voulais pas le faire a taton mais finalement c'est vrai que c'est le plus rapide.
    Merci problème résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajax 2 vues et 2 callbacks différents
    Par jbin-1 dans le forum ASP.NET MVC
    Réponses: 2
    Dernier message: 03/04/2012, 17h19
  2. Vue sur deux schémas différents
    Par arezki76 dans le forum Oracle
    Réponses: 3
    Dernier message: 20/01/2011, 17h06
  3. Réponses: 4
    Dernier message: 14/09/2009, 15h08
  4. Réponses: 6
    Dernier message: 03/02/2009, 10h09
  5. Réponses: 5
    Dernier message: 20/08/2008, 11h43

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