Bonjour à tous.

Je veux appliquer deux textures diffèrentes, chacune sur deux objets séparés (sol & murs).
Voilà comment je tente l'initialisation (surfsol et surfmur sont des surfaces SDL chargées des deux images.) :

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
static GLuint texID[2];
glGenTextures(2,texID);
 
glActiveTexture(GL_TEXTURE0);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,texID[0]);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_FASTEST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexImage2D(GL_TEXTURE_2D,0,OctetsParPixel,4096,4096,0,GL_BGR,GL_UNSIGNED_BYTE,surfsol->pixels);
 
glActiveTexture(GL_TEXTURE1);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,texID[1]);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_FASTEST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexImage2D(GL_TEXTURE_2D,0,OctetsParPixel,1024,1024,0,GL_BGR,GL_UNSIGNED_BYTE,surfmur->pixels);

Ensuite, au rendu, je tente de basculer sur l'une, puis l'autre texture :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
  glActiveTexture(GL_TEXTURE1);
  glBindTexture(GL_TEXTURE_2D,texID[1]);
(affiche mesh murs)
  glActiveTexture(GL_TEXTURE0);
  glBindTexture(GL_TEXTURE_2D,texID[0]);
(affiche mesh sol)
Et ça marche pô. Quoique je tente, sol et murs sont habillés de la texture0. Par contre, ça fonctionne en précédent l'affichage de chaque mesh du glTexImage2D() correspondant. Mais ça rame grave : Pas la bonne méthode.

Merci de votre aide.