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 :
| Primitive | Exemple |
|---|---|
| GL_POINTS | |
| GL_LINES | |
| GL_LINE_STRIP | |
| GL_LINE_LOOP | |
| GL_TRIANGLES | |
| GL_TRIANGLE_STRIP | |
| GL_TRIANGLE_FAN | |
| GL_QUADS | |
| GL_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 :
| Aptitude | Description |
|---|---|
| GL_INDEX_ARRAY | Tableau d'indices. |
| GL_NORMAL_ARRAY | Tableau de normales. |
| GL_COLOR_ARRAY | Tableau de couleurs. |
| GL_TEXTURE_COORD_ARRAY | Tableau de coordonnées de texture. |
| GL_VERTEX_ARRAY | Tableau 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 :
| Mode | Description |
|---|---|
| GL_POINT | Point. |
| GL_LINE | Ligne. |
| GL_FILL | Plein (défaut). |