Chào mọi người!
- MÌnh vừa rồi có đọc qua cái LoadTextureRAW tên mạng
- Mình viết chương trình vẽ một hình lập phương và một hình tam giác đặt nó vào menu khi kích chuột phải sẽ hiển thị 2 lựa chọn hiển thị hình lập phương hoặc tam giác. Ok
Nhưng mình không muốn cái hình lập phương để màu mà muốn trên nó là hình ảnh vd: 1 cô gái
- Mình nghĩ rằng dowload 1 file ảnh với định dạng bgp hoặc jpg sau đó thực hiện load file ảnh đó vào hình. Không biết ý nghĩ đó đúng hay sai vì mình đọc mấy cái texture mapping nó đều không nhắc đến định dạng này @@
- Mình thấy cái LoadTextureRAW mình thử viết load file anh.bgp nhưng do mới tiếp xúc với opengl mình không biết làm sao để khi mình load cái file đó nó rơi đúng vào hình lập phương vì khi mình run thì nó k báo lỗi nhưng cũng không thấy hiển thị hình ảnh mình load.
- Mà nếu có thể laod ảnh bmp vào được thì câu lện load sau khi viết xong hàm LoadTexture sẽ được đặt ở đâu và viết như thế nào? em mới học nên mù gà lắm.
Các anh em biết các nào không giúp mình với
Mình cám ơn trước nha
Code:
// Tải một RGB 256x256. RAW tập tin như là một kết cấu 
  GLuint LoadTextureRAW (const char * filename, GLfloat wrap) 
  { 
      GLuint texture; 
      int width, height; 
      BYTE *data; 
      FILE *file; 

      // Mở kết cấu dữ liệu 
      file=fopen ("D:\\anh.bmp", "rb"); 
	  
      if(file == NULL) return 0; 

      // Cấp phát bộ đệm 
      width = 256; 
      height = 256; 
      data =(unsigned char *)malloc (width * height * 3); 

      // Đọc dữ liệu kết cấu 
      fread (data, width * height * 3, 1,file); 
      fclose (file); 

      // Phân bổ một tên kết cấu 
	  glGenTextures (1, & texture); 

      // Chọn kết cấu hiện tại của chúng tôi 
	  glBindTexture (GL_TEXTURE_2D, texture); 

      // Chọn điều chỉnh để kết hợp kết cấu với màu sắc cho bóng 
      glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); 

      // Khi kết cấu có diện tích nhỏ, bộ lọc bilinear mipmap gần nhất 
      glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); 
      // Khi kết cấu có diện tích lớn, bộ lọc bilinear mipmap đầu tiên 
      glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 

      // Nếu bọc là đúng, kết cấu kết thúc tốt đẹp ở các cạnh (lặp lại) 
      // ...  sai, kết cấu kết thúc ở các cạnh (kẹp) 
	  glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
      glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);

      // Xây dựng mipmaps kết cấu của  tôi 
      gluBuild2DMipmaps (GL_TEXTURE_2D, 3, width, height, 
                         GL_RGB, GL_UNSIGNED_BYTE, data); 
	  glEnable(texture);
      // Bộ đệm miễn phí 
      free (data); 

      return texture;
  } 
  //*************************
  void FreeTexture( GLuint texture )
{

  glDeleteTextures( 1, &texture );

}