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 :

GLSL matrice de transformation courante


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut GLSL matrice de transformation courante
    Bonjour .
    J'aimerais savoir en GLSL si il y a une solution pour récupérer la matrice courante sans la passer en paramètre.

    J'essay de travailler dans le fragment sur la position des vertices dans le repère monde.

    Mais dans le vert cette position est exprimée dans le repère objet et non dans le repère monde. (j'utilise gl_Vertex )

    J'ai pensé à gl_ModelViewProjectionMatrixInverse * gl_FragCoord pour récupérer la position du fragment dans le repère world. Mais cela n'a pas l'air de fonctionner.

  2. #2
    Membre éclairé Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut
    Pour ce faire il faut la position de la caméra et extraire les informations de la model view.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mat3 M1 ; // axes de l'objet
        M1[0] = gl_ModelViewMatrix[0].xyz ;
        M1[1] = gl_ModelViewMatrix[1].xyz ;
        M1[2] = gl_ModelViewMatrix[2].xyz ;
    ( ce qui revient à écrire mat3 M1 = gl_ModelViewMatrix ; )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        vec3 V ;
        V = gl_ModelViewMatrix[3].xyz ; //Position de l'objet
     
        vertex2 = gl_Vertex + cameraPos + transpose(M1) * V ;
    Mais cela n'est pas un réel changement de répère car il ne prend pas en compte les vecteurs de direction de l'objet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        mat3 D1 ; // vecteurs directeurs de l'objet
        D1[0] = transpose(gl_ModelViewMatrix)[2].xyz ;
        D1[1] = transpose(gl_ModelViewMatrix)[1].xyz ;
        D1[2] = transpose(gl_ModelViewMatrix)[0].xyz ;
    Avec quelques liens:
    http://www.gamedev.net/community/for...opic_id=172118
    http://eraquila.iquebec.com/site/theo/matrice.htm
    http://www.opengl.org/sdk/libs/OpenS...l_quickref.pdf

    EDIT:
    eu je crois que me suis inversé dans ligne colonne je vérifi ça après miaim.

Discussions similaires

  1. [Java2D] Matrice de transformation
    Par Talstus dans le forum 2D
    Réponses: 13
    Dernier message: 13/04/2007, 01h30
  2. Réponses: 4
    Dernier message: 08/03/2007, 11h32
  3. Ajouter une matrice de transformation
    Par Ekinoks dans le forum OpenGL
    Réponses: 9
    Dernier message: 20/11/2006, 20h32
  4. Envoyer la matrice de transformation
    Par Ekinoks dans le forum OpenGL
    Réponses: 2
    Dernier message: 13/11/2006, 11h10
  5. Moteur 2D: Pb de calcul de Matrice de transformation
    Par themadmax dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 29/06/2006, 12h22

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