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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2009, 12:26   #1
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию Рисование затекстурированного полигона в OpenGL.

Раюотаю с движком omega на opengl. Мне нужно нарисовать затекстурированный полигон, текстура уже загружена а с рисованием есть проблемы. Пытаюсь сделать вот так:

Fon- это текстура движка где ID текстура для OpenGL а Fon.Width и Fon.Height размеры.
Код:
glEnable( GL_TEXTURE_2D );
glEnable( GL_BLEND );
glBindTexture( GL_TEXTURE_2D, Fon.ID );
glBegin( GL_Polygon );

glTexCoord2f( 300/ Fon.Width , 300/ Fon.Height);
glVertex2f( 300,300);

glTexCoord2f( 300/ Fon.Width , 600/ Fon.Height);
glVertex2f( 300,600);

glTexCoord2f( 600/ Fon.Width , 600/ Fon.Height);
glVertex2f( 600,600);

glTexCoord2f( 600/ Fon.Width , 300/ Fon.Height);
glVertex2f( 600,300);


glEnd;
glDisable( GL_TEXTURE_2D );
glDisable( GL_BLEND );
Я с opengl не особо дружу поэтому прошу объяснить что такое текстурные координаты и почему они находятся так как в моем примере (если они у меня правильно находятся) а также что означает GL_BLEND.
Вот что получается:
Изображения
Тип файла: jpg 1.jpg (15.5 Кб, 139 просмотров)

Последний раз редактировалось Вадим Буренков; 17.08.2009 в 12:29.
Вадим Буренков вне форума Ответить с цитированием
Старый 17.08.2009, 15:11   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

щас IDE запускать не охото, говорю то что помню.
glEnable( GL_BLEND );
включение режима смешивания(за счет него прозрачность возможна...например)

текстурные координаты нужны чтобы накладывать части текстуры,
например на треугольник прямоугольную текстуру делать как то не оч...
или когда есть один большой файл текстуры(элементный), и с помощью них накладываются на элементы определенные части текстуры
(могу пару примеров выложить(скринов) если надо)
квадрат то затекстурировать просто

с виду верно, но почему именно 300(600) делим?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.08.2009, 16:22   #3
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Псасибо. Мне уже на другом форуме подсказали. А размывалась текстура из за того что не был настроен параметр зацикливания текстуры:
glTexParameteri(GL_TEXTURE_2D,GL_TE XTURE_WRAP_S,GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D,GL_TE XTURE_WRAP_T,GL_REPEAT);
Вадим Буренков вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование Granus Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 32 30.06.2009 23:23
рисование TaTT DoGG Общие вопросы .NET 3 14.05.2009 18:36
Рисование Granus Общие вопросы Delphi 2 24.12.2008 07:44
Рисование TriCERATOP Помощь студентам 5 28.11.2008 15:09
Рисование... HunterMan Win Api 10 30.04.2008 23:46