Problème de transparence sur texture opengl

Résolu
cs_Batman60
Messages postés
71
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
21 octobre 2007
- 31 août 2006 à 22:26
cs_Batman60
Messages postés
71
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
21 octobre 2007
- 2 sept. 2006 à 17:01
bonsoir
la transparence sur la texture tga ne s'affiche pas, pourtant j'utilise le code ci-dessous et je ne vois pas quoi d'autre à ajouter ou modifier au code
merci d'avance pour un eventuel tuyau:

#include <gl/glext.h>


class Csdl
{
   public:  
GLuint texture_name;
 
void LoadTexture(const char*file,GLuint texture)
     {
        SDL_Surface *image=IMG_Load(file);          
   
    if (image==NULL)
    {
       MessageBox(NULL,"Image pas chargée","debug",MB_ICONSTOP|MB_OK);
    }
  GetObject(image, sizeof(image), &image);                                                                 
  glGenTextures(1,&texture_name);
  glBindTexture(GL_TEXTURE_2D,texture);      
 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_MIN_FILTER,GL_LINEAR);
 
 if(strstr(file,".tga"))
  gluBuild2DMipmaps(GL_TEXTURE_2D, 3, image->w, image->h,
    GL_BGRA, GL_UNSIGNED_BYTE, image->pixels);
 
  if(strstr(file,".bmp"))
  gluBuild2DMipmaps(GL_TEXTURE_2D, 3, image->w, image->h,
    GL_BGR, GL_UNSIGNED_BYTE, image->pixels);
   
  if(strstr(file,".jpg"))       
  gluBuild2DMipmaps(GL_TEXTURE_2D, 3, image->w, image->h,
    GL_RGB, GL_UNSIGNED_BYTE, image->pixels); 
                        
  glEnable(GL_TEXTURE_2D);
  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  glEnable(GL_BLEND);
  DeleteObject(image);             
 
    }                                                            
};

2 réponses

luhtor
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
31 août 2006 à 22:54
T'es sur du GL_BGRA ? Sinon, l'argument 3 devrait
plutot etre 4 deja, et ca me parait bizzare comme arguement, je pense
plutot que tu devrais avoir un truc de ce genre (cas un enum GL_RGBA ou
l'autre):

gluBuild2DMipmaps(GL_TEXTURE_2D, GL_BGRA, image->w, image->h, GL_RGBA, GL_UNSIGNED_BYTE, image->pixels);

http://neogamedev.chable.net/index.php?PageID=2033
3
cs_Batman60
Messages postés
71
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
21 octobre 2007

2 sept. 2006 à 17:01
salut
MERCI  luhtor ca fonctionne avec en argument le "4"
maintenant la transparence est OK
0