web-dev-qa-db-fra.com

Comment accéder aux éléments individuels d'un glsl mat4?

Est-il possible d'accéder aux éléments individuels d'une matrice de type glsl mat4? Comment?

51
bobobobo

La section 5.6 du manuel de référence GLSL indique que vous pouvez accéder aux éléments du tableau mat4 En utilisant la syntaxe de style operator[][] De la manière suivante:

mat4 m;
m[1] = vec4(2.0); // sets the second column to all 2.0
m[0][0] = 1.0; // sets the upper left element to 1.0
m[2][3] = 2.0; // sets the 4th element of the third column to 2.0

N'oubliez pas, OpenGL par défaut colonnes matrices principales, ce qui signifie que l'accès est au format mat[col][row]. Dans l'exemple, m[2][3] Définit la 4ème LIGNE (index 3) de la 3ème COLONNE (index 2) à 2.0. Dans l'exemple m[1]=vec4(2.0), il définit une colonne entière à la fois (parce que m[1] Fait référence à la colonne # 2, lorsque seul UN index est utilisé, cela signifie que COLONNE. m[1] désigne le SECOND COLONNE VECTEUR).

59
bobobobo