2011-10-25 6 views
6

Ho trovato 5349574673 pagine in alfa blending e non riesco ancora a ottenere il risultato desiderato. Sto cercando di visualizzare correttamente i file gif/png (con trasparenza/traslucenza) usando opengl.OpenGL alpha blending

Ecco la mia parte di inizializzazione:

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 

Sono sicuro che le immagini hanno la trasparenza, e vengono caricati correttamente.
glBlendFunc (GL_ONE, GL_ONE); funziona ma non riesco a capire se sta facendo qualcosa sul canale alfa in quanto sarebbe visualizzato come nero => fusione funziona
glColor4f (1f, 1f, 1f, 0.3f); funziona bene, posso disegnare roba trasparente

P.S. Sto usando questo esempio http://lwjgl.org/wiki/index.php?title=Space_Invaders_Example_Game per l'apprendimento

EDIT ho usato altre texture fatte codificati con GIMP e altri caricatori di texture e ora funziona benissimo.

+0

Invia l'immagine. Il codice di init sembra ok. –

risposta

5

L'impostazione di fusione è corretta. Tuttavia per il mescolamento di lavoro la texture deve contenere un canale alfa, opportunamente valorizzato. E poi i dati del canale alfa devono essere preservati dal processo di caricamento dell'immagine. Possiamo vedere il caricamento dell'immagine e il codice di generazione della trama, per favore?