У меня возникают некоторые проблемы при рендеринге текстуры, которая имеет 8-битный альфа-канал, а именно: ее выравнивание до 1 бита, а glBlendFunc (), похоже, ничего не делает.
Вот вызов немедленного режима:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glBegin(GL_QUADS);
{
glTexCoord2f(0, 0);
glVertex2f(0, 0);
glTexCoord2f(1, 0);
glVertex2f(356, 0);
glTexCoord2f(1, 1);
glVertex2f(356, 356);
glTexCoord2f(0, 1);
glVertex2f(0, 356);
}
glEnd();
Само собой разумеется, есть множество состояний OpenGL, которые были установлены за сценой, и однозначно одно из них
Существуют ли какие-либо состояния, о которых я не знаю, которые могут помешать стадии смешивания?
Я правильно понял, что такое blendfunc? Похоже, это правильно с интернет-страниц, на которых я смотрел - однако я проверил текстуру в GDEBugger, чтобы изображение было определенно загружено с 8-битным альфа-каналом, а также пробовал изображения без альфа-канала и с одним бит альфа-канал.
Любая помощь будет принята с благодарностью!
Edit:
В ответ на ответы: я использую библиотеку загрузки изображений SOIL, я собираюсь просмотреть ее источник и посмотреть, как она работает. Прямо сейчас я просто визуализирую это изображение поверх уже отрисованной сцены - она определенно не сталкивается с проблемами глубины - фактически тест буфера глубины отключен.