glBlendFunc () с 32-битными текстурами RGBA - PullRequest
0 голосов
/ 13 декабря 2010

У меня есть полупрозрачная текстура с различной непрозрачностью в разных местах.У меня есть основной битмап текстуры и битмап маски.Когда программа выполняется, альфа-значения из битовой карты маски загружаются в альфа-значения основной битовой карты текстуры.Области, которые я хочу сделать прозрачными, имеют значение 255 альфа, а области, которые я хочу оставить полностью непрозрачными, имеют значения 0 альфа.Между значениями средней прозрачности также есть промежуточные значения.

Я испробовал всевозможные настройки glBlendFunc (), но он либо полностью невидим, либо действует на цвета RGB исходной текстуры.

Ответы [ 2 ]

4 голосов
/ 13 декабря 2010

Обычно в OpenGL 0 означает прозрачный, а 255 непрозрачный, что противоположно тому, что у вас есть.

так что-то вроде:

glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA);

Должно работать.

0 голосов
/ 18 августа 2012

У меня была такая же проблема.Я использовал SDL_Image для загрузки своих изображений.Я понял, когда я конвертировал изображение, которое я использовал SDL_DisplayFormat вместо SDL_DisplayFormatAlpha.Это решило мою проблему.

...