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 :

Question suite aux vecteur de la fonction lookAt.


Sujet :

OpenGL

  1. #1
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2023
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Novembre 2023
    Messages : 129
    Par défaut Question suite aux vecteur de la fonction lookAt.
    Salut, j'ai une fonction lookAt pour regarder à un endroit précis avec trois vecteurs, up pour regarder vers le haut, left le vecteur de gauche et forward le vecteur qui pointe devant la vue. J'ai eu un soucis lorsque le vecteur forward est égal ou opposé au vecteur up le crossProduct renvoyait le vecteur null, j'ai dû donc changer le code comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void View::lookAt(float x, float y, float z) {
                target = math::Vec3f(x, y, z);
                forward = target - position;
                forward = forward.normalize();            
                if (forward == up)
                    left = forward.cross(math::Vec3f(0, 0, -1)).normalize();
                else if (forward == -up)
                    left = forward.cross(math::Vec3f(0, 0, 1)).normalize();
                else
                    left = forward.cross(up);
                viewMatrix.setAxis(left, up, forward);
                viewUpdated = true;
            }
    Mais je ne sais pas trop ce que doit valoir les vecteurs left et up quand le vecteur up et forward sont identique (regarde en haut) ou opposés. (regarde en bas)

    Merci.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 188
    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 188
    Billets dans le blog
    157
    Par défaut
    Bonjour,

    Le vecteur up doit toujours être 90° du vecteur forward. Schématiquement, ça indique le haut de la tête (vos cheveux). Si vous regardez le ciel (vous levez la tête), vos cheveux ne sont pas devant vos yeux/devant vous... ils vont dans la direction de derrière vous.
    Donc, à aucun moment vous ne devriez avoir de forward et de up égaux ou opposé, même en tournant la caméra.
    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.

  3. #3
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2023
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Novembre 2023
    Messages : 129
    Par défaut
    Ok je vois donc quand je regarde vers la haut ou vers le bas la tête ne doit pas se trouver en haut ou en bas forcément mais sur le côté, merci!

    Dans ce cas je devrais peut être fournir en plus à ma fonction lookat la direction de la tête...

Discussions similaires

  1. Question quant aux objets statics
    Par jojob dans le forum Langage
    Réponses: 2
    Dernier message: 15/12/2006, 14h11
  2. Réponses: 2
    Dernier message: 17/11/2006, 16h23
  3. question quant aux possibilités FileObjectSystem
    Par guitza87 dans le forum ASP
    Réponses: 1
    Dernier message: 17/03/2006, 10h58
  4. Réponses: 5
    Dernier message: 13/10/2005, 13h46

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