Aller au contenu principal

Sommets

La déclaration des sommets doit être encadrée d'une instruction de début glBegin et de fin glEnd :

void glBegin(unsigned int mode);
/// TODO: Déclaration des sommets.
void glEnd();

Mode

Le mode spécifie le groupe de primitives à afficher et peut être l'une des suivantes :

PrimitiveExemple
GL_POINTSGL_POINTS
GL_LINESGL_LINES
GL_LINE_STRIPGL_LINE_STRIP
GL_LINE_LOOPGL_LINE_LOOP
GL_TRIANGLESGL_TRIANGLES
GL_TRIANGLE_STRIPGL_TRIANGLE_STRIP
GL_TRIANGLE_FANGL_TRIANGLE_FAN
GL_QUADSGL_QUADS
GL_QUAD_STRIPGL_QUAD_STRIP

Déclarations

Pour déclarer un sommet :

glVertexNt(...);

Pour déclarer un sommet à N composantes de type t.

Tableau

Les composantes de sommets peuvent aussi être déclarées dans un tableau :

float vertices[] = { 0.0, 0.5, 0.5, -0.5, -0.5, -0.5 };

Source

Pour spécifier quel sommets proviendront d'un tableau :

void glEnableClientState(unsigned int cap);

L'aptitude à activer peut être l'une des suivantes :

AptitudeDescription
GL_INDEX_ARRAYTableau d'indices.
GL_NORMAL_ARRAYTableau de normales.
GL_COLOR_ARRAYTableau de couleurs.
GL_TEXTURE_COORD_ARRAYTableau de coordonnées de texture.
GL_VERTEX_ARRAYTableau de sommets.
......

Et il y a une fonction afin de définir le tableau à utiliser pour chacune des aptitudes :

void glIndexPointer(unsigned int type, int stride, const void* pointer);
void glNormalPointer(unsigned int type, int stride, const void* pointer);
void glColorPointer(int size, unsigned int type, int stride, const void* pointer);
void glTexCoordPointer(int size, unsigned int type, int stride, const void* pointer);
void glVertexPointer(int size, unsigned int type, int stride, const void* pointer);
// ...

L'argument size indique le nombre de composantes, type indique le type des composantes, stride spécifie l'indice du premier sommet dans le tableau, et pointer spécifie le tableau comportant les composantes de sommets.

Affichage

Pour afficher à partir des sommets de tableaux :

void glDrawArrays(unsigned int mode, int first, int count);

L'argument mode indique le type de primitive à afficher, first détermine l'indice du premier sommet dans le tableau, et count spécifie combien de sommets afficher.

Mode

Il est possible de définir le mode d'affichage :

void glPolygonMode(unsigned int face, unsigned int mode);

L'argument face devrait être GL_FRONT_AND_BACK, tandis que l'argument mode peut être l'un des suivants :

ModeDescription
GL_POINTPoint.
GL_LINELigne.
GL_FILLPlein (défaut).