Passer un tableau de vecteurs de float à une dimension (enfin des scalaires quoi) :
1
|
void glUniform1fv(GLint location, GLsizei count, const GLfloat *value);
|
Passer un tableau de vecteurs de float à deux dimensions :
1
|
void glUniform2fv(GLint location, GLsizei count, const GLfloat *value);
|
Passer un tableau de vecteurs de float à trois dimensions :
1
|
void glUniform3fv(GLint location, GLsizei count, const GLfloat *value);
|
Passer un tableau de vecteurs de float à quatre dimensions :
1
|
void glUniform4fv(GLint location, GLsizei count, const GLfloat *value);
|
Passer un tableau de vecteurs de int à une dimension :
1
|
void glUniform1iv(GLint location, GLsizei count, const GLint *value);
|
Passer un tableau de vecteurs de int à deux dimensions :
1
|
void glUniform2iv(GLint location, GLsizei count, const GLint *value);
|
Passer un tableau de vecteurs de int à trois dimensions :
1
|
void glUniform3iv(GLint location, GLsizei count, const GLint *value);
|
Passer un tableau de vecteurs de int à quatre dimensions :
1
|
void glUniform4iv(GLint location, GLsizei count, const GLint *value);
|
Utilisation des paramètres :
- location : identifiant de la variable à modifier dans le shader
- count : nombre d'éléments du tableau
- value : tableau de valeurs
La chose à bien retenir sur les tableaux de vecteurs dans OpenGl 3 est que les différentes composantes des vecteurs se suivent dans le tableau de valeurs.
En gros ça donne quelque chose comme ça :
1
|
float values = {u1, u2, u3, v1, v2, v3, w1, w2, w3, ...};
|
|