0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 58
|
|||||||||||
1 | |||||||||||
Как добавить прозрачность на текстуру, используя BMP 32 с альфа каналом06.12.2016, 15:05. Показов 2867. Ответов 30
Добрый день. Изучаю возможности добавление текстуры с прозрачностью. Конкретно, пытаюсь добавить текстуру на квадрат.
Описываю так.
Пытаюсь убрать его. Делаю так: (остальное оставляю как есть)
Если можно, объясните что не так. спасибо
0
|
|
06.12.2016, 15:05 | |
Ответы с готовыми решениями:
30
Как пользоваться альфа каналом bmp
Graphics: как рисовать Альфа каналом |
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 58
|
||||||
06.12.2016, 15:14 [ТС] | 2 | |||||
Конкретно рисую вот так:
0
|
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 58
|
|
06.12.2016, 17:30 [ТС] | 4 |
snake32, я так и сделал. в фотошопе bmp с альфа каналом.
0
|
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 58
|
|
06.12.2016, 17:33 [ТС] | 5 |
0
|
06.12.2016, 18:02 | 6 |
Значит ф-ия которая загружает bmp не понимает RGBA. И загружает их как RGB, потому как на результате чётко видно что не хватает 1/4 данных
Добавлено через 1 минуту то есть массив texture_MeteorM->data должен содержать width*height*4 байт
1
|
Фриланс Pascal/Delphi etc
64 / 73 / 16
Регистрация: 25.11.2016
Сообщений: 263
|
||||||
06.12.2016, 18:11 | 7 | |||||
spiderman23
Попробуйте, выставить режим смешивания Alpha:
0
|
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 58
|
||||||
07.12.2016, 10:05 [ТС] | 8 | |||||
snake32,
Функция, которая загружает bmp такая:
Если я пишу sizeof(texture_MeteorM->data) возвращает ответ 4 (это как я понимаю просто размер переменной texture_MeteorM, которая описана AUX_RGBImageRec *texture_MeteorM; так. И возможно, знаете, как использовать что-то другое для загрузки bmp. И как загрузить png? ILinker, Это не помогло. Как бы, смешивание работает, но сама картинка остаётся как раньше, как сказал snake32 "не хватает 1/4 данных". Видимо проблема как раз в той функции.
0
|
Фриланс Pascal/Delphi etc
64 / 73 / 16
Регистрация: 25.11.2016
Сообщений: 263
|
|
07.12.2016, 10:16 | 9 |
Может пройтись по пикселям и выставить Alpha в 0 где нужно?
Ещё как вариант сделать Premult Alpha. Может PNG загрузить?
0
|
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 58
|
|
07.12.2016, 10:20 [ТС] | 10 |
0
|
142 / 86 / 23
Регистрация: 31.08.2016
Сообщений: 748
|
|
07.12.2016, 10:35 | 11 |
0
|
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 58
|
|
07.12.2016, 10:38 [ТС] | 12 |
Нашел сообщение о том, что моя функция действительно не может грузить BMP 32 бит. Спасибо snake32.
Как сделать цвет полигона прозрачным Буду искать решение дальше. Приму в дар ссылки на что-то похожее ![]()
0
|
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 58
|
|
07.12.2016, 16:52 [ТС] | 14 |
0
|
07.12.2016, 16:55 | 15 |
Параметры glTexImage2D покажите
Добавлено через 1 минуту glTexImage2D(GL_TEXTURE_2D, 0, 4, texture_MeteorM->sizeX, texture_MeteorM->sizeY, 0, GL_BGRA, GL_UNSIGNED_BYTE, texture_MeteorM->data);
0
|
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 58
|
||||||||||||||||
07.12.2016, 16:59 [ТС] | 16 | |||||||||||||||
Параметры:
Если пишу то мне пишет [BCC32 Error] Earth3D.cpp(124): E2451 Undefined symbol 'GL_BGRA'
0
|
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 58
|
|
07.12.2016, 17:03 [ТС] | 18 |
Так (если заменить GL_BGRA на вот это) работает (не выдаёт ошибку), но результат как и был.
0
|
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 58
|
|
07.12.2016, 17:19 [ТС] | 19 |
0
|
07.12.2016, 18:11 | 20 | |||||
0
|
07.12.2016, 18:11 | |
Помогаю со студенческими работами здесь
20
Как загрузить картинку с альфа каналом? Как удалить слой, или управлять альфа-каналом мувика в определённых кадрах? QPixmap с альфа-каналом Текстура с альфа каналом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |