Bonjour,
J'ai un soucis avec OpenGL et les textures.
Comment afficher une texture png , en gérant les couleurs transparantes?
Car lorsque j'affiche une texture elle s'affiche mais avec un contour blanc, comment pourrais-je l'enlever ?
Merci beaucoup![]()
Bonjour,
J'ai un soucis avec OpenGL et les textures.
Comment afficher une texture png , en gérant les couleurs transparantes?
Car lorsque j'affiche une texture elle s'affiche mais avec un contour blanc, comment pourrais-je l'enlever ?
Merci beaucoup![]()
Bonsoir,
je suis toujours bloqué pour la transparence.
Je suis sur une piste, c'est ajouté une couche alpha grace a Gimp et l'importé sous forme de TGA bien entendu.
Donc a ma classe voiture, je voudrais ajouter la texture tga avec la couche alpha activé, comme c'est possible ? Car j'ai vu sur un tuto d'utilisé par exemple GLbmp pour les tga mais il reste introuvable (lien mort). Alors peut etre que graphicEx ?
mais je ne sais pas du tout l'utilisé, je vous remercie d'avance.
Bonne soirée![]()
Oui sous OpenGL la transparence c'est en fait du blending...que peut être basé sur l'Alpha
les fonctions clés sont donc :
là tu actives le blending et tu déclares que celui-ci est basé sur le canal Alpha de la source, mais tu as des tas d'autres combinaisons possible
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);![]()
Je te remercie pour cette réponse.
Pour cela je doit gérer quel format d'image ? le TGA ? ou le BMP passe très bien :S
Car je n'arrive qu'a importé du bmp malheureusement.
Cordialement
Mais je comprend pas un truc, je ne peu pas mettre de canal alpha sur mon bmp non ?
Je vais allez voir tes liens.
Moi j'ai entendu dire que je pouvais charger les pixels de l'image et que le pixel :
0,255,42,255 je le transformais en 0,255,42,0
Cela peu marcher ?
EDIT : Pour l'exemple, je suppose que son TGA a une couche alpha ?
Mais je vois pas comment il l'active, car j'ai commenté les lignes :
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
Et ca marche toujours :S
oui et nonsur un Bitmap pf32bit, tu as la places pour stocker le canal Alpha, par contre si tu fais un copier/coller dans Paint par exemple, tu vas perdre ce canal...il faut un logiciel qui soit capable de le gérer c'est tout
si tu accèdes au ScanLine de ton bitmap tu peux venir changer tout ce que tu veux...tu peux par exemple calculer la valeur du canal alpha en fonction de la couleur.
étonnant ...
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
18
19
20
21
22 var b: TBitmap; x,y:integer; p:pcardinal; begin b := TBitmap.Create; b.LoadFromFile('...'); b.PixelFormat := pf32bit; for y := 0 to b.Height-1 do begin p := b.ScanLine[y]; for x := 0 to b.Width-1 do begin if p^ and $FFFFFF = TransparentColor then p^ := 0 else p^ := p^ or $FF000000 inc(p); end; end; end;![]()
Merci pour tes aides
La transparence est gerer sur tga avec le canal alpha et 3 / 4 commandes openGl par contre le sol de mon jeu (la map quoi) est devenu bluet, mystere ^^
ah oui, en effet, c'est au niveau de la texture qu'on lui indique de faire du blend
Code : Sélectionner tout - Visualiser dans une fenêtre à part glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
wow, c'est quoi ca ? cela sert a quoi ?
Partager