Salut !

Je cherche à rendre transparent une couleur dans une image importé.
Apres toute les recherches que j’ai pu faire, il me faut apparemment utiliser l’alpha-blending.
Malheureusement, j’arrive avec cela qu’a rentre TOUTE l’image plus ou mois transparent et pas seulement une seul couleur :’(

J’ai vue que dans le tutorial de loulou sur « la réalisation d’un moteur 3D en C++ » a un moment il se sert de ça : http://loulou.developpez.com/tutorie.../partie6/#L4.2
Mais le petit souci c’est que je n’arrive pas a voir comment es que il a fait :^/

Si non j’ai vu plain d’autre site qui parle de ca comme : http://eraquila.iquebec.com/site/delphi/opengl/gl6.htm mais il n’explique que comment rentre tout l’objet transparent :^/

J’ai donc une class pour importer une image :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
void Ctexture::cree(char * image)
{
    AUX_RGBImageRec *texture1;
    texture1 = auxDIBImageLoad(image);
    glGenTextures (1, &texture);
    glBindTexture (GL_TEXTURE_2D, texture);
    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, 3, texture1->sizeX, texture1->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, texture1->data);
}
Une foi l’image importé comme ceci et sélectionné sans oublié d’activer le GL_TEXTURE_2D, je veux l’afficher en appliquent un alpha-blending pour rendre une seul couleur transparent comme le noir, le blanc ou autre ...
Donc d’après que j’ai pu voir par ci par là cela devrais ressemblé a une truc du style :
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
 
glEnable(GL_BLEND);   
glBlendFunc( ??? , ???);  // je ne sais pas trop quoi m'étre ladedans ...
glColor4f( ??? ); // cette fonction est elle nécessaire ?
        glBegin (GL_QUADS);                       
            glTexCoord2f(0.0,1.0);
            glVertex3f ( 2, 2,-5);              
 
            glTexCoord2f(1.0,1.0);
            glVertex3f ( -2, 2,-5);       
 
            glTexCoord2f(1.0,0.0);
            glVertex3f ( -2, -2,-5);            
 
            glTexCoord2f(0.0,0.0);
            glVertex3f ( 2, -2,-5);        
        glEnd ();
Merci de votre aide.