fabienGL
Messages postés18Date d'inscriptionsamedi 5 octobre 2002StatutMembreDernière intervention31 août 2003
-
2 juin 2003 à 22:52
cs_Chouchou182
Messages postés252Date d'inscriptionvendredi 13 juin 2003StatutMembreDernière intervention25 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?)
minouche45
Messages postés5Date d'inscriptionsamedi 17 mai 2003StatutMembreDerniè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
cs_Chouchou182
Messages postés252Date d'inscriptionvendredi 13 juin 2003StatutMembreDernière intervention25 avril 20111 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.