Bonjour tout le monde,
Je suis débutant en openGL et je suis en train d'apprendre les textures via le site suivant: "http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=06"
Malheureusement, j'ai du mal à y comprendre le code.
Entre temps j'ai trouvé un autre site en français qui donne le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 GLubyte Texture[16] = { 0,0,0,0, 0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF, 0,0,0,0 }; //Image (2x2) GLuint Nom; void InitGL() { glClearColor(.5,.5,.5,0); //Change la couleur du fond glEnable(GL_DEPTH_TEST); //Active le depth test glEnable(GL_TEXTURE_2D); //Active le texturing glGenTextures(1,&Nom); //Génère un n° de texture glBindTexture(GL_TEXTURE_2D,Nom); //Sélectionne ce n° glTexImage2D ( GL_TEXTURE_2D, //Type : texture 2D 0, //Mipmap : aucun 4, //Couleurs : 4 2, //Largeur : 2 2, //Hauteur : 2 0, //Largeur du bord : 0 GL_RGBA, //Format : RGBA GL_UNSIGNED_BYTE, //Type des couleurs Texture //Addresse de l'image ); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); }
Cette partie est bien détaillée alors je comprends assez bien à part peut être le GLubyte Texture[16] et ce qu'il renvoie.
Après, on applique la texture à un objet 3D comme tel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 void Draw() { glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); //Efface le framebuffer et le depthbuffer glMatrixMode(GL_MODELVIEW); //Un petit gluLookAt()... glLoadIdentity(); gluLookAt(3,2,3,0,0,0,0,1,0); glBegin(GL_QUADS); //Et c'est parti pour le cube ! glTexCoord2i(0,0);glVertex3i(-1,-1,-1); glTexCoord2i(1,0);glVertex3i(+1,-1,-1); glTexCoord2i(1,1);glVertex3i(+1,+1,-1); glTexCoord2i(0,1);glVertex3i(-1,+1,-1); //1 face glTexCoord2i(0,0);glVertex3i(-1,-1,+1); glTexCoord2i(1,0);glVertex3i(+1,-1,+1); glTexCoord2i(1,1);glVertex3i(+1,+1,+1); glTexCoord2i(0,1);glVertex3i(-1,+1,+1); //2 faces glTexCoord2i(0,0);glVertex3i(+1,-1,-1); glTexCoord2i(1,0);glVertex3i(+1,-1,+1); glTexCoord2i(1,1);glVertex3i(+1,+1,+1); glTexCoord2i(0,1);glVertex3i(+1,+1,-1); //3 faces glTexCoord2i(0,0);glVertex3i(-1,-1,-1); glTexCoord2i(1,0);glVertex3i(-1,-1,+1); glTexCoord2i(1,1);glVertex3i(-1,+1,+1); glTexCoord2i(0,1);glVertex3i(-1,+1,-1); //4 faces glTexCoord2i(1,0);glVertex3i(-1,+1,-1); glTexCoord2i(1,1);glVertex3i(+1,+1,-1); glTexCoord2i(0,1);glVertex3i(+1,+1,+1); glTexCoord2i(0,0);glVertex3i(-1,+1,+1); //5 faces glTexCoord2i(1,0);glVertex3i(-1,-1,+1); glTexCoord2i(1,1);glVertex3i(+1,-1,+1); glTexCoord2i(0,1);glVertex3i(+1,-1,-1); glTexCoord2i(0,0);glVertex3i(-1,-1,-1); //6 faces glEnd(); SwapBuffers(DC); //glutSwapBuffers(); pour GLUT glutPostRedisplay(); //Uniquement pour GLUT
Ici, je ne comprends pas le gluLookAt et ses paramètres.
Et puis, ici, la personne créée elle-même son image en échéquier. Comment faire pour importer une image sur mon ordinateur à la place ? et faut-il l'importer en chemin absolu ?
Merci d'avance pour votre aide !
Partager