Matrice OpenGL

fabienGL Messages postés 18 Date d'inscription samedi 5 octobre 2002 Statut Membre Dernière intervention 31 août 2003 - 2 juin 2003 à 22:52
cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 - 21 juil. 2004 à 12:17
Voici une question, voir réflexion est sur comment se présente les matrices OpenGL, en effet elles ont les lignes et colonnes inversé par rapport à leur représentations mathématiques standard, non? par exemple (c'est un exemple où je demande confirmation)

en math. standard, une matrice de translation se présente comme suit :

1 0 0 x
0 1 0 y
0 0 1 z
0 0 0 1

alors qu'en OpenGL, cette matrice serait réprésenté comme suit :

1 0 0 0
0 1 0 0
0 0 1 0
x y z 1

bon ben je demande confirmation de cette syntaxe (ce qui enduit alors des petits changements très certainement ds l'algorithme de multiplication de matrices, non?)

bon ben merci de vos réponse

4 réponses

minouche45 Messages postés 5 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 2 juin 2003
2 juin 2003 à 22:58
-------------------------------
Réponse au message :
-------------------------------

> Voici une question, voir réflexion est sur comment se présente les matrices OpenGL, en effet elles ont les lignes et colonnes inversé par rapport à leur représentations mathématiques standard, non? par exemple (c'est un exemple où je demande confirmation)
>
> en math. standard, une matrice de translation se présente comme suit :
>
> 1 0 0 x
> 0 1 0 y
> 0 0 1 z
> 0 0 0 1
>
> alors qu'en OpenGL, cette matrice serait réprésenté comme suit :
>
> 1 0 0 0
> 0 1 0 0
> 0 0 1 0
> x y z 1
>
> bon ben je demande confirmation de cette syntaxe (ce qui enduit alors des petits changements très certainement ds l'algorithme de multiplication de matrices, non?)
>
> bon ben merci de vos réponse
0
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
11 juin 2003 à 15:43
salut fabien :)

je pensais que c'etait comme ça :
les matrices avec openGL

[ x 0 0 0 ]
[ 0 y 0 0 ]
[ 0 0 z 0 ]
[ 0 0 0 1 ]
0
cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
21 juil. 2004 à 12:10
Salut

Mon message arrive bien tard mais vous éclairera peut-être.

En math on a l'habitude de noter un point par ses coordonnées dans une matrice à une colonne. Pour la translation on utilise donc :
1 0 0 x X X+x
0 1 0 y * Y = Y+y
0 0 1 z Z Z+z
0 0 1 0 1 1

Or en programmation on stocke les points comme les vecteurs dans des matrices à une ligne et quatre colonnes ; d'où:
1 0 0 0
(X Y Z 1) * 0 1 0 0 = (X+x Y+y Z+z 1)
0 0 1 0
x y z 1

Cette notation à l'inverse de celle utilisée en cours de math explique également que l'on compose les transformations dans l'ordre chronologique.

A++

Chouchou
0
cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
21 juil. 2004 à 12:17
Les matrices ont été mal dessinées, désolé.

Donc en math :

1 0 0 x     X     X+x
0 1 0 y  *  Y  =  Y+y
0 0 1 z     Z     Z+z
0 0 1 0     1     1


Et en prog :
              1 0 0 0
(X Y Z 1)  *  0 1 0 0  =  (X+x Y+y Z+z 1)
              0 0 1 0
              x y z 1



J'espère que c'est mieux passé ainsi..
0
Rejoignez-nous