F0ra
Messages postés111Date d'inscriptionmardi 18 septembre 2007StatutMembreDernière intervention29 décembre 2008
-
22 sept. 2007 à 11:29
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 2008
-
23 sept. 2007 à 16:29
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
Bonjour,
Je voudrais afficher une texture avec un font noir transparent.
Le noir est bien transparent, cependant les autres couleurs sont aussi transparentes.
J'ai essayée avec glColor3f, ça ne donne rien. Et je ne sais pas ou le placer.
Il y a-t-il une solution pour que le noir soit juste transparent et non les autres couleurs.
Merci beaucoup.
@+
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 23 sept. 2007 à 11:10
Bon alors je précise un peu. Avec un logiciel comme The Gimp, tu remplaces le noir, par du transparent.
Sous The Gimp 2.2, ca se fait de la facon suivant: tu ouvres ta texture, tu fais "Selection par couleur", tu cliques sur le noir. Tu fais ensuite, "Calque -> Masque -> Ajouter un Masque de Calque -> A partir de la sélection" et tu cliques aussi sur "inverser le masque" puis ensuite "Calque -> Masque -> Appliquer le masque". Et la tu obtiens la meme texture, sauf que tout le noir est remplacé par du transparent.
Faut bien sur utiliser un format qui permet la sauvegarde de la couche alpha. Le format tga par exemple, a de nombreux loader gratuit sur le net et notamment sur ce site qui permettent facilement de charger une image.
F0ra
Messages postés111Date d'inscriptionmardi 18 septembre 2007StatutMembreDernière intervention29 décembre 2008 23 sept. 2007 à 12:01
Re,
Je l'avais déjà fais ceci, regard bien en haut :
"Le noir est bien transparent, cependant les autres couleurs sont aussi transparentes. "
J'aurais dû écrire:
Le noir est complètement transparent (invisible) à 100%.
Sauf que les autres couleurs sont non opaque. On voit les couleurs qui se mélangent avec l'autre texture de fond.
Mon problème ne vient pas de la texture, mais du code source.
Merci quand même.
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
F0ra
Messages postés111Date d'inscriptionmardi 18 septembre 2007StatutMembreDernière intervention29 décembre 2008 23 sept. 2007 à 16:18
Si, je supprime : glBlendFunc(GL_SRC_ALPHA ,GL_ONE);
Le noir n'est plus transparent.
Et si je le remplace par :
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
Le noir n'est plus transparent aussi.
...
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); <-- celui est indispensable
glBindTexture(GL_TEXTURE_2D, g_Texture[Texture]);
...
J'aurai besoin d’un tutorial, mais je n’en trouve pas.
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 23 sept. 2007 à 16:29
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); <-- celui est indispensable
Je suis bien d'accord, celui la est indispensable, l'autre absolument pas. Cette fonction définie simplement comment calculer la valeur de la transparence du pixel actuellement dans le frameBuffer et le pixel en cours de calcul.
Avec cette version, si ton pixel est noir, normalement sa transparence vaut 0, donc la couleur finale sera la couleur du pixel actuellement dans le frameBuffer: la couleur ne sera donc pas modifié, c'est ce que tu veux.
Si ca ne marche pas, c'est ton fichier image qui n'est pas correct, ou ton chargement de texture qui est mauvais. Post ici la partie du code qui charge ton image depuis le disque dur vers la mémoire video.