8 Les tableaux de vertices

Voici une nouveauté, en tout cas par rapport à OpenGl 2. Et cette nouveauté va nous faire gagner un temps non négligeable.

Le principe est très simple, au lieu de faire comme en OpenGl 2 où le processeur dit à la carte graphique, affiche moi un point, affiche moi un autre point, etc. Là, le processeur dit à la carte graphique : voici une flopée de points, de couleurs, de coordonnées de textures, affiche le tout. Le temps gagné est très important puisque on utilise une seule fois le port PCI express et non autant de fois qu'il y a de points à afficher.

Voici la fonction que nous allons utiliser :

1
void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);

Voici les différents paramètres :

  • index : numéro du paramètre d'entré du shader (0 : premier, 1 : deuxième, 2 : troisième)
  • size : nombre de valeurs à prendre en compte (3 pour un vecteur à trois dimensions, 2 pour une coordonnées de textures, 3 pour une couleur...)
  • type : type de données (généralement GL_FLOAT)
  • normalized : dit si on veut normaliser les données (GL_FALSE si on ne veut pas)
  • stride : spécifie le premier indice du tableau à prendre en compte (généralement 0)
  • pointer : le tableau de données proprement dit

Surtout n’apprenez pas cela par cœur pour le moment, je vous donne cette fonction car nous allons nous en servir, mais vous aller mieux comprendre avec la section sur les Shaders.