OpenGL альфа-смешивание - PullRequest
       11

OpenGL альфа-смешивание

6 голосов
/ 25 октября 2011

Я нашел 5349574673 страниц по альфа-смешиванию, и все еще не могу получить желаемый результат.Я пытаюсь заставить файлы gif / png отображаться правильно (С прозрачностью / прозрачностью), используя opengl.

Вот мой бит инициализации:

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

Я уверен, что изображения имеют прозрачность, изагружены правильно.glBlendFunc (GL_ONE, GL_ONE);работает, но я не могу сказать, что он делает что-то на альфа-канале, поскольку он будет отображаться как черный => смешивание работаетglColor4f (1f, 1f, 1f, 0.3f);работает отлично, я могу рисовать прозрачные вещи

PS Я использую этот пример http://lwjgl.org/wiki/index.php?title=Space_Invaders_Example_Game для обучения

EDIT Я использовал другие текстуры, сделанные в кодировке GIMPи другие загрузчики текстур, и теперь он работает нормально.

1 Ответ

5 голосов
/ 25 октября 2011

Ваши настройки смешивания верны.Однако, чтобы смешивание работало, текстура должна содержать альфа-канал, конечно, правильно оцененный.И тогда данные альфа-канала должны быть сохранены в процессе загрузки изображения.Можем ли мы увидеть код загрузки изображения и генерации текстуры, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...