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 :

Matrices et OpenGL


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de gusgus
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 500
    Par défaut Matrices et OpenGL
    J'ai plusieurs questions sur les matrices et OpenGL.

    1)Quelle est la différence entre GL_PROJECTION et GL_MODELVIEW?Si j'ai bien compris,il applique la matrice GL_PROJECTION apres la matrice GL_MODELVIEW non?Mais pourquoi ne pas utiliser des matrices directement sans préciser s'il s'agit de GL_PROJECTION ou GL_MODELVIEW,sa ne change rien pour la carte graphique non?

    2)J'ai une matrice que je voudrais appliquer a un objet.Et la grande question,comment je fait^^?

    3)Dans les matrices 4x4,qu'est ce qui est appliqué en premier,la rotation ou la translation?

    Merci.

  2. #2
    Membre éprouvé Avatar de Harooold
    Homme Profil pro
    Ingénieur 3D temps réel
    Inscrit en
    Mars 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 136
    Par défaut
    1)
    GL_PROJECTION est une pile de matrices utilisée pour stocker les transformations de projection.

    GL_MODELVIEW est une pile de matrices utilisée pour stocker les transformations géometriques.

    Quand tu définis tes points, ils sont dans l'espace scène, et toi tu aimerais qu'ils soient dans l espace de l'écran pour pouvoir les visualiser, ce qui revient à emmener tes points dans le repère caméra et faire une projection sur le plan 2D de l'écran.

    Tu utilises donc une transformation géometrique pour passer les points dans les repère camera puis une projection pour avoir les coordonées sur l'écran.

    Tu peux effectivement faire tes calculs matriciels à la main, mais ça sera le CPU qui se les taperas, alors qu'opengl sait très bien faire ces calculs en utilisant le GPU, pourquoi s'en priver ?



    2)
    Tu as une matrice de transformation M et un point P.
    Soit P' le point transformé, alors

    P' = M x P

    Donc appliquer une transformation à un objet revient à appliquer cette transformation à tout ses points.
    Je te conseilles de jeter un oeil sur le pipeline Opengl pour bien comprendre comment il traite les informations et fait tout tout seul pour toi :p



    3)
    Aucun des deux, les deux sont fait en même temps !
    C'est une multiplication matricielle quoi ...


    De rien.

  3. #3
    Membre chevronné
    Avatar de gusgus
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 500
    Par défaut
    Merci!
    1)Mais on pourais aussi utiliser une unique pile de matrices non?Et sinon GL_MODELVIEW définie toute les transformation relatives a l'objet et a la camera c'est sa?

    2)Imaginons que j'ai une matrices 4x4 et que je veu que opengl l'applique a un objet. Quelle commande je doi utiliser pour que OpenGL applique un matrice sur un objet(sans passer évidement par rotatef,tranlatef et companie)?

    2)Je suis pas sur de bien comprendre....Un matrice 4x4 définie bien une rotation ET une translation?(corrigez moi si je raconte n'importequoi je suis pas un pro des matrices^^).Quand on applique cette matrice a des points,on a donc la rotation ET la translation qui sont appliqués.Quelle est dans la pratique ce qui se passe?Imaginons que j'ai un point (0,0,0).Je lui applique un matrice 4x4 qui définie une rotation sur l'axe Y de 90° ET une translation de (1,1,1).Quelle seras le résultat finale?Un point en (1,1,1) ou un point autre part?

  4. #4
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Bonsoir

    glMultMatrixf( matrice );

    Oui « ça » appliquera la translation, la taille, la rotation sur l'objet avec un seul appel.

    Voici un bon lien:
    http://jeux.developpez.com/faq/matquat/

  5. #5
    Membre chevronné
    Avatar de gusgus
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 500
    Par défaut
    Merci!
    Sinon, j'avais dejas lu la faq(plusieur fois d'ailleur),mais c'est toujours bien de rappeler ce lien.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/03/2014, 23h49
  2. Matrices dans OpenGL 4
    Par forum dans le forum Contribuez
    Réponses: 0
    Dernier message: 09/07/2012, 21h52
  3. Matrice OpenGL
    Par tigana dans le forum OpenGL
    Réponses: 5
    Dernier message: 02/09/2005, 18h35
  4. [Matrice]Est ce possible avec OpenGL?
    Par bnoix dans le forum OpenGL
    Réponses: 7
    Dernier message: 19/05/2005, 18h47

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