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 :

Application d'une matrice OPENGL par son propre code


Sujet :

OpenGL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 16
    Points
    16
    Par défaut Application d'une matrice OPENGL par son propre code
    Bonjour à tous,
    Je suis en train d'écrire un plugin pour Xblite pour lire et afficher les modèles .MD3 en OPENGL.
    Grâce à la FAQ sur les matrices et quaternions, J'arrive maintenant à composer une matrice à appliquer à chaque partie de mon modèle de manière à ce que le personnage et son arme s'articulent correctement.
    Mon problème si situe au niveau des bounding boxes, j'ai besoin d'en recuperer les coordonnées pour pouvoir faire les tests de collision.

    Quand je les affiche après avoir multiplié la matrice à la matrice courante (avec glMultMatrixf), j'obtient un résultat correct :

    Par contre, en multipliant moi même les vecteurs à la matrice crée, la translation à l'air bonne mais les rotations déforment ma box de manière bizarre:


    Je me suis inspiré de la FAQ pour la fonction de multiplication, en tenant compte que les matrices GL ne sont pas dans le sens conventionnel (Matrix[15] est un tableau de float/single représentant une matrice 4x4 OPENGL)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    FUNCTION SINGLE MATH_MatrixMultiplyVector (SINGLE Matrix[],CVector3 vect)
    SINGLE x,y,z
     
    x=Matrix[0]*vect.x+Matrix[4]*vect.y+Matrix[8]*vect.z+Matrix[12]
    y=Matrix[1]*vect.x+Matrix[5]*vect.y+Matrix[9]*vect.z+Matrix[13]
    z=Matrix[2]*vect.x+Matrix[6]*vect.y+Matrix[10]*vect.z+Matrix[14]
     
    vect.x = x
    vect.y = y
    vect.z = z
    END FUNCTION
    Du coup je me demande comment OPENGL applique les matrices à un vecteur...
    Une chose est sûre, j'ai raté quelque chose quelque part mais quoi et où ?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    Bon ben voilà j'ai fini par trouver ! ...effectivement j'avais raté quelque chose... ...un boite en 3d dimensions, c'est six points, pas deux MDr ! tout le reste était bon LoooL

  3. #3
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    tiens c'est pas mal ca moi mes boites en 3D elles utilisent 8 vertex en général
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  4. #4
    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
    En cherchant une explication 6+2=8 ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    MDr ! je devrais plus souvent me relire ! surement que j'ai pensé : c'est six de plus

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

Discussions similaires

  1. regexp = extraire value d'une balise input par son "name"
    Par NoobX dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/06/2008, 16h03
  2. [WD12] Accéder à une fenêtre MDI par son alias
    Par Bowen dans le forum WinDev
    Réponses: 2
    Dernier message: 19/05/2008, 18h08
  3. Réponses: 3
    Dernier message: 10/08/2007, 13h45
  4. Réponses: 42
    Dernier message: 19/06/2007, 09h40
  5. Remplir une matrice et afficher son contenu
    Par annoussa dans le forum Pascal
    Réponses: 2
    Dernier message: 08/11/2006, 11h48

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