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 :

[Débutant] Positionnement caméra


Sujet :

OpenGL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 41
    Points
    41
    Par défaut [Débutant] Positionnement caméra
    Bonjour à tous,

    Je débute en openGL (utilisé en C) et je souhaite pouvoir visualiser ma scène en me déplaçant autour à la façon d'un doom like. La souris sert de direction, les touches UP/DOWN pour avancer/reculer et les touches LEFT/RIGHT sont pour les déplacements latéraux.

    J'ai pas mal cherché sur le net, sur ce forum, mais je n'y arrive toujours pas

    Dans ma fonction de gestion des clicks de souris, j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    GLvoid window_mouseFunc(int button, int state, int x, int y)
    {
    if(state == GLUT_DOWN && button == GLUT_LEFT_BUTTON){
        xold = x;
      }
    }
    Dans celle pour les mouvements de souris (sachant que beta est l'angle d'orientation pour regarder de guache à droite et alpha l'angle pour regarder de bas en haut) :
    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
     
    GLvoid window_motionFunc(int x, int y)
    {
      betaCamera += x-xold;
      alphaCamera += y-yold;
     
      if(betaCamera >= 360)
        betaCamera -= 360;
      if(betaCamera < 0)
        betaCamera += 360;
     
      if(alphaCamera >= 360)
        alphaCamera -= 360;
      if(alphaCamera < 0)
        alphaCamera += 360;
     
      xViseCamera = sinTable[betaCamera];
      yViseCamera = sinTable[alphaCamera];
      zViseCamera = -cosTable[betaCamera];
     
      xold = x;
      yold = y;
     
      glutPostRedisplay();
    }
    Et dans mon render_scene, j'ai placé ce code avant l'affichage des éléments de ma scène :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gluLookAt(xCamera,yCamera,zCamera,xViseCamera,yViseCamera,zViseCamera,0.0,1.0,0.0);
    Au départ, x/y/zCamera est à 0, tout comme x/y/zCamera.

    Ce code devrait permettre de positionner la caméra en 0 et de visualiser, sans bouger la scène en tournant à 360° dans tous les sens. Mais ça ne marche même pas. Je ne vois pas pourquoi ... donc pour avancer/reculer/déplacement latéral, c'est pas la peine.

    Merci d'avance.

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour
    Ta question est assez confuse, néammoins, N'aurais tu pas le problème suivant : x et xold toujours égaux ?
    Ce qui fait que le code n'a pas trop de sens.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 41
    Points
    41
    Par défaut
    Merci de ta réponse. Bah en fait x, c'est le x de la souris, et y le y de la souris. Je vais éditer mon post avec les entêtes des fonctions.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 41
    Points
    41
    Par défaut
    Après avoir réfléchi toute l'après midi hier (oui je dois être un neuneu), je m'y suis remis ce soir, mais en réfléchissant, sans tenter de chercher sur le net. J'ai réussi avec des transformations et je suis bien content

  5. #5
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Donc problème résolu, un petit clique en bas à gauche stp

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

Discussions similaires

  1. [Débutant] positionnement de la page
    Par Faiche dans le forum Mise en page CSS
    Réponses: 12
    Dernier message: 24/01/2009, 15h08
  2. [SWING][débutant] positionnement et retour a la ligne
    Par gloubi dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 14/03/2008, 10h47
  3. [débutant][c++] Axe de rotation caméra
    Par bornibus dans le forum OpenGL
    Réponses: 2
    Dernier message: 28/02/2005, 10h01
  4. [HTML][débutante] Positionnement fixe d'image
    Par khany dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 08/11/2004, 18h01

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