2011-10-25 14 views
6

Znalazłem 5349574673 stron o mieszaniu alfa i nadal nie mogę uzyskać pożądanego rezultatu. Próbuję zrobić, aby pliki gif/png były wyświetlane poprawnie (Z przezroczystością/przeziernością) za pomocą OpenGL.Łączenie aliasów OpenGL

Oto mój inicjalizacji bit:

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 

Jestem pewien, że obrazy mają przejrzystość i są prawidłowo załadowany.
glBlendFunc (GL_ONE, GL_ONE); działa, ale nie mogę stwierdzić, czy robi on coś na kanale alfa, ponieważ renderowałby jako czarny => blending działa
glColor4f (1f, 1f, 1f, 0.3f); działa dobrze, mogę rysować przezroczyste rzeczy

P.S. Używam tego przykładu http://lwjgl.org/wiki/index.php?title=Space_Invaders_Example_Game do nauki

EDIT użyłem inne tekstury wykonane z zakodowanymi GIMP i innych ładowarek tekstur i teraz działa poprawnie.

+0

Opublikuj zdjęcie. Kod init wygląda dobrze. –

Odpowiedz

5

Konfiguracja mieszania jest prawidłowa. Jednak w przypadku mieszania do pracy tekstura musi zawierać kanał alfa, oczywiście odpowiednio wyceniony. Następnie dane kanału alfa muszą zostać zachowane w procesie ładowania obrazu. Czy możemy zobaczyć ładowanie obrazu i kod generowania tekstury?