2011-10-25 17 views
6

He encontrado 5349574673 páginas sobre alfa blending y todavía no puedo obtener el resultado deseado. Estoy intentando hacer que los archivos gif/png se muestren correctamente (CON transparencia/translucidez) usando opengl.OpenGL alpha blending

Aquí es mi bit de inicialización:

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 

Estoy seguro de que las imágenes tienen la transparencia, y se cargan correctamente.
glBlendFunc (GL_ONE, GL_ONE); funciona, pero no puedo decir si está haciendo algo en el canal alfa, ya que representaría como funciona el negro =>
glColor4f (1f, 1f, 1f, 0.3f); funciona bien, puedo dibujar cosas transparentes

P.S. Estoy usando este ejemplo http://lwjgl.org/wiki/index.php?title=Space_Invaders_Example_Game para aprender

EDITAR utilicé otras texturas hechas codificado con GIMP y otros gestores de textura y ahora funciona bien.

+0

Publique la imagen. El código de inicio se ve bien. –

Respuesta

5

Su configuración de mezcla es correcta. Sin embargo, para que la mezcla funcione, la textura debe contener un canal alfa, correctamente valorado por supuesto. Y luego los datos del canal alfa deben ser preservados por el proceso de carga de la imagen. ¿Podemos ver el código de carga de la imagen y la generación de texturas, por favor?