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 :

Problème avec GluLookAt


Sujet :

OpenGL

  1. #1
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut Problème avec GluLookAt
    Bonjour à tous, je viens de m'inscrire juste ( et plus après ) pour poser cette question.
    J'ai un morceau de code qui utilise GL , GLU , GLUT ( la fmod mais elle n'a rien à voir avec mon problème ).
    Lorsque que je met :
    glulookat( 0.0f, 10.0f, 0.0f,
    0.0f, 0.0f, 0.0f
    0, 1, 0);

    Rien ne s'affiche ( un carré blanc en l'occurance )
    Comme vous pouvez le remarquer j'essaie de placer ma caméra au dessu de la scène et de regarder vers le bas. Le vecteur y sert de hauteur.

    Mais si je met :

    glulookat( 0.0f, 10.0f, 0.0f,
    0.0f, 0.0f, 0.01f
    0, 1, 0);

    Mon carré s'affiche, d'ailleur si je change le "center_x" , ça s'affiche aussi, mais pas si je change le "center_y" seulement

    Donc je cherche ( car ce n'est pas la première fois que j'essaie de codé des trucs de ce genre ) pourquoi ?

    Je code sous linux ( gcc , makefile à la main ( petit projet aussi ) ), mais je ne pense pas que le problème vienne de là.

    Je donne le code de mon projet si vous le voulez ( si je trouve l'option du forum ) ( en pièces jointes ).
    D'ailleur il n'y a pas de balise code ( pour mettre du code ) dans le forum?

    D'après un copain , il faut que je mette comme vecteur "UP" -> 1, 0, 0
    D'ailleur la doc indique qu'il ne faut pas mettre le vecteur "UP" parallèle au la caméra.
    Mais je ne comprends pas pourquoi, puis-je avoir des explications. De plus du coup si je veux élever un objet du sol , je doit lui faire un glTranlated( 1 , 0 , 0 ) par example , et non pas glTranslated( 0, 1 , 0 ) ?


    Merci pour votre aide.
    Fichiers attachés Fichiers attachés
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Le vecteur up ne doit pas être colinéaire à la direction de la caméra, car ces deux vecteurs sont utilisés pour construire le troisième axe via un produit vectoriel. Or, le produit vectoriel de deux vecteurs colinéaires est un vecteur nul, donc au final tu auras une matrice de vue complétement pétée.

    Tu peux changer ton vecteur up, ou si ça te pose problème, simplement introduire un petit epsilon pour ne pas être parfaitement colinéaire, ça suffira à régler le problème comme tu l'as constaté.

  3. #3
    Membre très actif

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Par défaut
    salut la matrice de caméra doit être prise comme telle:
    tu spécifies simplement où est ta caméra
    à savoir où elle se positionne,
    vers où elle regarde,
    quel sera dans le repère global le vecteur vertical de ton écran

    après tu n'as plus qu'à spécifier tes objets dans le repère global
    avec glulookat(0,10,0, 0,0,0, 1,0,0)
    -> un objet positionné en (0,1,0) sera plus proche de la caméra que un objet positionné en (0,0,0)
    et un objet positionné en (1,0,0) sera plus haut sur ton écran qu'un objet positionné en (0,0,0)

    les matrices te permettent justement de passer simplement du repère global au repère caméra, ton but étant de faire abstraction de ton repère caméra et d'exprimer tous les objets dans le même repère global quelque soit la position de ta caméra

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Merci pour les renseignements, ça m'évitera surement de planter toute les bases de mes programmes et de mettre 2 heures à debugger.

    acx01b : Comment tu fais abstraction de ton repère caméra, pour placer tes objets ( du style n'importe qu'elle vecteur "UP" et les objets sont toujours à la même place , avec des vertex3f il y aura des changements ? )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

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

Discussions similaires

  1. [OpenGL 1.x] Problème avec glFrustum et gluLookAt
    Par raluk22 dans le forum GLUT
    Réponses: 1
    Dernier message: 24/05/2013, 10h32
  2. Problème avec GluLookAt
    Par User Name dans le forum Débuter
    Réponses: 4
    Dernier message: 09/02/2008, 21h11
  3. Problème avec gluLookAt()
    Par Mikmacer dans le forum OpenGL
    Réponses: 2
    Dernier message: 10/12/2007, 11h57
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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