Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Текстурирование в OpenGL |
Автор: Wolf 25.6.2006, 22:23 | ||||
Доброго времени суток! У меня возник один вопрос: Как на плоскость наложить текстуру, причём чтобы плоскость отображалась (её прозрачность) в соответствии с альфа каналом. Файл считываю из 32 битного BMP. У такого файла байты цветов идут в таком порядке B G R A. Всё учтено.
функция прекрасно работает, выделяет память, а дальше в какой последовательности должны ити команды. У меня текстура накладывается, но альфа канал игнорируется. GL_BLEND включал... В чём же проблема? P.S. Функцию привёл потому, что надо сделать без использования масок и прочих отдельных файлов... вот ещё два кусочка, которые в моей программке отвечают за инициализацию текстуры и инициализацию дисплейного списка, отрисовывающего плоскость
программирую Visual C++ WinAPI |
Автор: p0s0l 26.6.2006, 09:01 |
На первый взгляд - в glTexImage2D указано что используется 3 компоненты, а надо 4 (это про третий параметр)... PS: Кстати, есть формат GL_BGRA_EXT (не нужно будет преобразование).. |
Автор: Wolf 26.6.2006, 10:57 |
p0s0l, Примного благодарен, исправил, вот теперь всё прекрасно ![]() |
Автор: ynter 27.6.2006, 14:05 |
Доброго времени суток! Но насколько я понимаю это помогает сделать текстуру более бледной, но ни как ни прозрачной по отношению к фону? А меня как раз интересует второе... |
Автор: Wolf 27.6.2006, 16:01 |
ynter, Как раз речь и идёт об изменение прозрачности относительно фона, причём изменить прозрачность можно каждой точки текстуры. Для этого и нужен альфа канал. |