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 :
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 ...
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); }
Donc d’après que j’ai pu voir par ci par là cela devrais ressemblé a une truc du style :
Merci de votre aide.
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 ();
Partager