# Probleme mit mehreren Texturen - unter OpenGL



## Davicito (18. Januar 2011)

Hallo, ich hab eine Frage zum Texturing in OpenGL.

Ich habe ein Spiel programmmiret, in dessen ein Cubo eine Textur, die BodenPlatten - auf dem der Cubo steht - eine andere Textur bekommen soll. mit dem folgenden Code, habe ich alle Texturen eingebunden , aber ich sehe nur meine BodenPlatten-Textur auf dem boden. Die Cubo Textur fehlt. 

Was habe ich da falsch gemacht****


```
#ifdef GL_VERSION_1_1
static GLuint texName;
static GLuint texName2;
#endif
...

void init()
{
   ...
   background_image  = gltxReadRGB("floor.rgb");
   cubo_image  = gltxReadRGB("klotz.rgb");
   ...

  glPixelStorei(GL_UNPACK_ALIGNMENT, 1); // diefinirt, wie OpnenGL texturen speichert
  glGenTextures(1, &texName);   // zum Laden auf die Grafikkarte, intern für OpenGL
                                                // 1 steht für ein texturnamen &texName liefert die 
                                                // freien Namen der Open GL-Lister zurück
    
  glBindTexture(GL_TEXTURE_2D, texName); // definition der Art der Textvariablen +
                                                                  //setztn des namens

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);    
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);   
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);  
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
 
  glTexImage2D(GL_TEXTURE_2D, 0, background_image->components, 
                         background_image->width, background_image->height,  
                         0, GL_RGB, GL_UNSIGNED_BYTE, background_image->data);
	
  glPixelStorei(GL_UNPACK_ALIGNMENT, 2); // diefinirt, wie OpnenGL texturen speichert
  glGenTextures(1, &texName2);   // zum Laden auf die Grafikkarte, intern für OpenGL
                                    
  glBindTexture(GL_TEXTURE_2D, texName2); // definition der Art der Textvariablen +
                                                                    //  setztn des namens

 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);   
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);   
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);  
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);  
	
  glTexImage2D(GL_TEXTURE_2D, 0, cubo_image->components, cubo_image->width,
                        cubo_image->height, 0, GL_RGB, GL_UNSIGNED_BYTE,
                        cubo_image->data);
}
...
void Display()
{
 glEnable(GL_TEXTURE_2D);
 glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 glBindTexture(GL_TEXTURE_2D, texName);

   BodenPflaster(fx+bx, by, fz+bz); // das zu zeichnende Opjekt

 glDisable(GL_TEXTURE_2D); 

 glEnable(GL_TEXTURE_2D);
 glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 glBindTexture(GL_TEXTURE_2D, texName2);

   Cubo(cx, cy, cz);                        // das zu zeichnende Opjekt

 glDisable(GL_TEXTURE_2D); 
}
...
```


----------

