Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2012, 07:54   #1
saggy
Форумчанин
 
Регистрация: 08.10.2009
Сообщений: 112
Злость OpenGl текстура

Суть проблемы в том, что я уже целую неделю матерюсь с делфи, что бы загрузить в неё текстуру.
В результате необходимо получить и применить несколько загруженных в опреативную память 32-канальных текстур. Я пробовал и через обычную loadtexture через файл rc и res, но у меня ничего не получалось.
Я пробовал несколькими способами прописываь текстуру в res и rc, ничего не получалось. Я пробовал создавать трёхмерный массив gluint с ткестурой, и у меня получалось, но как только я переходил на 4-ое измерение (альфа канал), делфи либо ругался, что массив переполнен, либо вместо картинки в текстуре получалась неведомая фигня. Прошу, помогите найти РАБОЧИЙ код для двух функций:
1. загрузка текстуры с альфа каналом из файла
2. её активация для прориосвки конкретной фигуры
procedure life; for years := 1 to 11 do gotoschool(normal); woman := TMan.add; childrens.add(TMans); problems.add(fuck); woman.destroy; END.
saggy вне форума Ответить с цитированием
Старый 24.05.2012, 19:36   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

У Вас какая-то странная терминология. Альфа-канал никак не может быть 4-м измерением. Текстуры бывают 1-, 2- и 3-мерные вне зависимости от наличия или отсутствия альфа-канала.
Скорее всего, Вы просто в чем-то запутались.
Приведите хотя бы характерные размеры по каждому измерению.
s-andriano вне форума Ответить с цитированием
Старый 24.05.2012, 20:24   #3
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Блэндинг в помощь.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 24.05.2012, 23:09   #4
saggy
Форумчанин
 
Регистрация: 08.10.2009
Сообщений: 112
По умолчанию

s-andriano, может и запутался чуть. в файле же идёт последовательность каналов RGBA,
ну вот я и хочу к трём работающим приделать четвёртый канал (чем не измерение-то...)
у меня массив bits: array [0..255,0..255,0..3] of glubyte; где последнее 0..3 - это каналы R,G,B и альфа. если у меня стоит 0..2, текстура отображается нормально, как только я добавляю до 3, получается дикая адовая фигня.
Rin, подробнее, подробнее. я уже сто раз натыкался на это слово, и сто раз в каких местах только не прописывал его
procedure life; for years := 1 to 11 do gotoschool(normal); woman := TMan.add; childrens.add(TMans); problems.add(fuck); woman.destroy; END.
saggy вне форума Ответить с цитированием
Старый 25.05.2012, 18:03   #5
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

А какой у Вас третий параметр при вызове glTexImage2D?
Должен быть GL_RGBA.
s-andriano вне форума Ответить с цитированием
Старый 25.05.2012, 18:58   #6
saggy
Форумчанин
 
Регистрация: 08.10.2009
Сообщений: 112
По умолчанию

s-andriano, едрить-колотить, надо попробовать
procedure life; for years := 1 to 11 do gotoschool(normal); woman := TMan.add; childrens.add(TMans); problems.add(fuck); woman.destroy; END.
saggy вне форума Ответить с цитированием
Старый 25.05.2012, 21:46   #7
saggy
Форумчанин
 
Регистрация: 08.10.2009
Сообщений: 112
По умолчанию

s-andriano, заработало более-менее, спасибо!
теперь если ещё одну мелочь подскажешь, я тебе кланяться перед сном буду. у меня получилась прозрачная текстура, только если текстура просвечивается, то видно не то, что находится ЗА фигурой (как надо), а виден сам цвет фигуры. наверняка что-то здесь, но не совсем вьеду, что:
Код:
gltexparameteri(gl_texture_2d,gl_texture_mag_filter,gl_nearest);
gltexparameteri(gl_texture_2d,gl_texture_min_filter,gl_nearest);
glteximage2d(gl_texture_2d,0,gl_rgba,256,256,0,gl_rgba,gl_unsigned_byte,@bits);
gltexenvi(gl_texture_env,gl_texture_env_mode,gl_decal);
procedure life; for years := 1 to 11 do gotoschool(normal); woman := TMan.add; childrens.add(TMans); problems.add(fuck); woman.destroy; END.
saggy вне форума Ответить с цитированием
Старый 25.05.2012, 22:53   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Попытайтесь заменить GL_DECAL на GL_MODULATE.
s-andriano вне форума Ответить с цитированием
Старый 25.05.2012, 22:59   #9
saggy
Форумчанин
 
Регистрация: 08.10.2009
Сообщений: 112
По умолчанию

s-andriano, я вам поклоняюсь
спасибо огромное
проблема исчерпана
procedure life; for years := 1 to 11 do gotoschool(normal); woman := TMan.add; childrens.add(TMans); problems.add(fuck); woman.destroy; END.
saggy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текстура OpenGL по условию. DooMik Мультимедиа в Delphi 12 05.04.2012 14:05
Разная текстура для каждой грани куба OpenGL DIgorevich Мультимедиа в Delphi 4 16.12.2011 12:17
Красивая текстура ZvEr_HaCkEr Свободное общение 4 05.01.2011 10:20
Текстура на 2D объект OpenGL saggy Мультимедиа в Delphi 0 30.06.2010 13:52
Прозрачная текстура Miha85193 Мультимедиа в Delphi 1 01.04.2010 20:59