2011-10-25 3 views
6

J'ai trouvé 5349574673 pages sur alpha blending et je n'arrive toujours pas à obtenir le résultat désiré. J'essaie de faire afficher correctement les fichiers gif/png (AVEC transparence/translucidité) en utilisant opengl.OpenGL alpha blending

Voici mon bit d'initialisation:

glEnable(GL_TEXTURE_2D); 
glEnable(GL_BLEND); 
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); //I've seen this on most tutorials 
glDisable(GL_DEPTH_TEST); //it's a 2D game 
//...loading matrices and so on 

Je suis sûr que les images ont la transparence, et sont chargés correctement.
glBlendFunc (GL_ONE, GL_ONE); fonctionne mais je ne peux pas dire si elle fait quoi que ce soit sur le canal alpha car cela rendrait noir => le mélange fonctionne
glColor4f (1f, 1f, 1f, 0.3f); fonctionne bien, je peux dessiner des choses transparentes

P.S. J'utilise cet exemple pour l'apprentissage http://lwjgl.org/wiki/index.php?title=Space_Invaders_Example_Game

EDIT je d'autres textures faites encodé avec GIMP et autres chargeurs de texture et il fonctionne maintenant très bien.

+0

Afficher l'image. Le code de démarrage semble correct. –

Répondre

5

Votre configuration de fusion est correcte. Cependant, pour que le mélange fonctionne, la texture doit contenir un canal alpha, correctement évalué bien sûr. Et puis les données de canal alpha doivent être préservées par le processus de chargement d'image. Pouvons-nous voir le chargement de l'image et le code de génération de texture, s'il vous plaît?