OpenGL matrice pour changement de base

cs_Papin38 Messages postés 15 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 13 octobre 2010 - 11 oct. 2010 à 12:25
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 - 13 oct. 2010 à 20:29
Bonjour à tous
Petite question pour savoir si je suis à coté de la plaque.
Je voudrais utiliser la puissance de la carte graphique et les matrices d'OpenGL pour réaliser un changement de base (rotation, translation) d'un nuage de points. Le but n'est pas de l'afficher à l'écran, mais de récupérer les coordonnées des points transformés.

Je possède une liste de points en coordonnées.
Une matrice de transformation (4 x 4) fournie.

Ce que j'ai tenté pour l'instant, sans résultat :
Je crée un tableau M(0 to 15) as double que je renseigne avec les valeurs de la matrice.
glLoadMatrixd M(0) Je charge la matrice
glPushMatrix je sauve ma matrice
Je renseigne le tableau V(0 to 3) as double avec les coordonnnées d'un point.
glMultMatrixd V(0) j'applique la matrice de transformation au point
glGetDoublev glgMatrixMode, RetM(0) Je tente de lire le résultat du calcul pour récupérer les nouvelles coordonnées
glPopMatrix je restore la matrice

Le problème c'est que mon tableau RetM(0 to 15) sensé contenir le résultat est toujours égale à 0.

Help ! Please.
Merci

7 réponses

CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
11 oct. 2010 à 19:08
Bonjour Papin38,
Je travaille en ce moment la dessus,
mais pour développer une caméra OpenGL & vb.net
c'est tout a découvrir ...
Regarde aussi les fonctions
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
Je regarde ce soir si il y a une solution !

Sinon je viens de créer un petit module sur les matrices en vb.net et par quaternion ...
Si tu veux échanger la dessus c'est sans pb
CGSI3
0
cs_Papin38 Messages postés 15 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 13 octobre 2010
12 oct. 2010 à 17:24
Merci CGSI3 pour ta réponse.

glLoadIdentity() ne sert qu'à charger une matrice identité, ce qui est inutile dans mon cas puisque j'utilise glLoadMatrixd.
Et je ne suis pas sûr que glMatrixMode me soit utile puisque je n'ai pas de fenêtre d'affichage.

A+
0
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
12 oct. 2010 à 17:41
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Papin38 Messages postés 15 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 13 octobre 2010
12 oct. 2010 à 18:42
Merci pour les liens.
J'ai essayé ce qui marche pour les autres en faisant le plus simple possible :

[b]dim M(0 to 15) as double
glLoadIdentity
glGetDoublev GL_MODELVIEW_MATRIX, M(0)/b

Mais M est toujours vide

P.S.: je prog en VB6
0
cs_Papin38 Messages postés 15 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 13 octobre 2010
13 oct. 2010 à 17:28
A force de potasser le sujet des matrices, je viens de réaliser que je n'avais pas besoin de tout ça !
Ca aurait eut une utilité si j'avais dû faire les rotations et translations pour obtenir la matrice résultante. Mais comme j'ai déjà cette matrice, il ne me reste plus qu'à la multiplier avec mes vecteurs.

Salut CGSI3 et bon courage pour la suite de tes recherches.
0
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
13 oct. 2010 à 20:29
Merci a toi Papin 32,
Ta recherche m'a donné des idées intéressantes pour mon appli OpenGL
Si le monde de la 3D t'intéresse n'hésite pas me contacter.
Bonne continuation CGSI3
0
Rejoignez-nous