Pour remplir le contenu d'une surface en opengl, il faut créer des éléments acceptant des textures ( ex : triangle ou quadrilatère ).
Il faut donc que tu construises ta figure géométrique à partir de triangles ou quad , et que tu appliques ensuite la texture dessus.
ex pour faire un quadrilatère
Code :
- glBegin( GL_QUADS );
- glTexCoord2f( u0, v0 ); glVertex3f( x0, y0, 0.0f );
- glTexCoord2f( u0, v1 ); glVertex3f( x0, y1, 0.0f );
- glTexCoord2f( u1, v0 ); glVertex3f( x1, y0, 0.0f );
- glEnd();
|
( remplace les coordonnées par les tiennes )
glVertex3f permet de définir les coordonnées de ta forme, et glTexCoord2f permet de définir comment tu appliques la texture sur ton quad.
Ne pas oublier que ce ne sont pas les coordonnées dans la scène, mais les coordonnées propres à ton objet. Il te faut ensuite appliquer des matrices de transformations ( projection / homothétie / rotation ) pour placer ton objet dans la scène.
Ensuite, en ce qui concerne la texture, regarde du coté des fonctions :
- glGenTextures
- glBindTexture
- glTexImage2D
Il est peut etre possible de remplir une surface sans passer par une texture, mais je ne connais pas bien opengl, en tout cas, avec une texture, ca marchera forcement ( tu peux faire une texture 16x16 de la couleur que tu veux et l'appliquer en mode TILE )