![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| Dr.Death |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 950 Регистрация: 15.7.2003 Где: Волгоград Репутация: нет Всего: 1 |
Итак вопрос, я сделал в OpenGL сцену без координаты Z и рисую на ней с помощью
glVertex2i(x,y) прямоугольник. И есть у меня текстура. Мне надо както указать с помощью с помощью glTexCoord2i(x,y) прямоугольник текстуры, который надо наложить на мой нарисованный треугольник, но беда в том, что у меня не воспринимаются кооодинаты x,y у функции glTexCoord2i как координаты текстуры, иначе говоря пример: текстура размером 384х384, надо наложить из этой текстуры прямоугольник 0,0,64,64. Я делаю так:
И у меня ничего не происходит, но если указать размеры через glTexCoord2f, то все нормально, в чем проблема? -------------------- Жизнь коротка, чтобы быть в ней слабым.© Арнольд Шварцнеггер |
|||
|
||||
| gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: нет Всего: 40 |
А что происходит? Она просто изменяет размер текстуры? Там по-моему должна быть спец. функция для вырезки фрагмента текстуры.
А зачем тебе 2d. Дум4 делаешь? -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
| Dr.Death |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 950 Регистрация: 15.7.2003 Где: Волгоград Репутация: нет Всего: 1 |
Она ничего практически не делает.
-------------------- Жизнь коротка, чтобы быть в ней слабым.© Арнольд Шварцнеггер |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: нет Всего: 165 |
Эээ... Там что то типа glTexSubImage или glSubTexImage...
Ещё кстати я подозреваю что при инициализации ОпенГл преобразует размеры имэджа и меняет там все вм А почему бы тебе не юзать glTexCoord2f и подбирать дроби на основе нужных тебе значений? --------------------
|
|||
|
||||
| Dr.Death |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 950 Регистрация: 15.7.2003 Где: Волгоград Репутация: нет Всего: 1 |
chipset
Подбирать это сложно, т.к. мне надо сделать процедуру, ко-ая возвращает для номера картинки ее координаты x1,y1,x2,y2
Насчет этого, у меня проблемы были сначала с glVertex2i, потом сделал glOrtho2d, может есть что-то подобное для текстур? -------------------- Жизнь коротка, чтобы быть в ней слабым.© Арнольд Шварцнеггер |
|||
|
||||
| chipset |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: нет Всего: 165 |
если ничего не поможет а надо срочно юзай макрос
А если не срочно, забей и юзай привычный всем glTexCoord2f --------------------
|
||||
|
|||||
| Dr.Death |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 950 Регистрация: 15.7.2003 Где: Волгоград Репутация: нет Всего: 1 |
Кстати, каковы координаты левого верхнего угла текстуры в float?
-------------------- Жизнь коротка, чтобы быть в ней слабым.© Арнольд Шварцнеггер |
|||
|
||||
| Cheba |
|
|||
![]() pointless one ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1777 Регистрация: 27.11.2003 Где: /dev/null Репутация: нет Всего: 62 |
Левого верхнего: -1, 1.
Нижнего правого: 1, -1. |
|||
|
||||
| Dr.Death |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 950 Регистрация: 15.7.2003 Где: Волгоград Репутация: нет Всего: 1 |
Вот пример, у меня данная вещь не работает. Она высчитывает координаты прямогульника для текстуры, т.к. на текстуре множество слайдов.
384 - ширина текстуры и высота, т.е. файл jpg 384х384 И получается фигня, все время не тот слайд рисуется. -------------------- Жизнь коротка, чтобы быть в ней слабым.© Арнольд Шварцнеггер |
|||
|
||||
| Гость_Lavr |
|
||||
|
Unregistered |
Дело в том что координаты на текстуре (s и t) меняются от 0 до 1 (glTexCoord2i или glTexCoord2f неважно). При выходе из этого диапазона (а именно это случается здесь glTexCoord2i(64,0);), берется значение либо на границе, либо текстура продолжается. Таким образом используйте glTexCoord2f. |
||||
|
|||||
| Гость_Lavr |
|
|||
|
Unregistered |
допустим нужно наложить из текстуры кусок (x1,y1)-(x2,y2)
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |