Ejemplo n.º 1
0
 GLuint model::loadTexture(string TextureName) 
 {
     string filename = TextureName;
     filename.append(".bmp");
     BitMapFile *image[1];
     image[0] = getBMPData(filename);
     glGenTextures(1, &textureId); //Make room for our texture
     glBindTexture(GL_TEXTURE_2D, textureId); //Tell OpenGL which texture to edit
 	//Map the image to the texture
 	glTexImage2D(GL_TEXTURE_2D,                
 				 0,                            
 				 GL_RGB,                       
 				 image[0]->width, image[0]->height,  
 				 0,                            
 				 GL_RGB, 
 				 GL_UNSIGNED_BYTE, 
 				 image[0]->data);               //The actual pixel data
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
 }
Ejemplo n.º 2
0
void Mesh::TextureInit() {
  glEnable(GL_TEXTURE_2D);

  // Generate and load textures
  glGenTextures(5, texture);
  BitMapFile *image[5];
  image[0] = getBMPData(args->heightmap_filename);
  image[1] = getBMPData(args->normalmap_filename);
  image[2] = getBMPData("stone.bmp");
  image[3] = getBMPData("grass.bmp");
  image[4] = getBMPData("snow.bmp");

  // Set Texture 0 - Heightmap
  glBindTexture(GL_TEXTURE_2D, texture[0]);
  glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  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, GL_RGB8, image[0]->sizeX, image[0]->sizeY, 0, 
               GL_RGB, GL_UNSIGNED_BYTE, image[0]->data);

  // Set Texture 1 - Normal map
  glBindTexture(GL_TEXTURE_2D, texture[1]);
  glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  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, GL_RGB8, image[1]->sizeX, image[1]->sizeY, 0, 
               GL_RGB, GL_UNSIGNED_BYTE, image[1]->data);
  
  // Set Texture 2 - Stone
  glBindTexture(GL_TEXTURE_2D, texture[2]);
  glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  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, GL_RGB8, image[2]->sizeX, image[2]->sizeY, 0, 
               GL_RGB, GL_UNSIGNED_BYTE, image[2]->data);

  // Set Texture 3 - Grass
  glBindTexture(GL_TEXTURE_2D, texture[3]);
  glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  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, GL_RGB8, image[3]->sizeX, image[3]->sizeY, 0, 
               GL_RGB, GL_UNSIGNED_BYTE, image[3]->data);

  // Set Texture 4 - Snow
  glBindTexture(GL_TEXTURE_2D, texture[4]);
  glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  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, GL_RGB8, image[4]->sizeX, image[4]->sizeY, 0, 
               GL_RGB, GL_UNSIGNED_BYTE, image[4]->data);

  glDisable(GL_TEXTURE_2D);
}