HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Степень двойки, gluScaleImage и пр.
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Jumpdaphuckup!
Когда-то я здесь был

Дата регистрации: Nov 2005
Проживает: Україна / Харків
Сообщений: 128
Возраст: 36

Рейтинг



Степень двойки, gluScaleImage и пр.

Значит так.
Есть изображение: BMP, 24bpp, 122x169.
Задача: использовать его в качестве текстуры OpenGL, чего ж еще.

Изображение читается правильно (проверено).
Так как красная книга обещала автоматический рескейл "неправильных текстур" в gluBuild2DMipmaps, использовал именно эту функцию. Эффект показан в аттаче.
Затем пробую такое:

C++ Source Code:
gluScaleImage(GL_RGB, m_iOriginalWidth, m_iOriginalHeight, GL_UNSIGNED_BYTE, texture->data, iNewWidth, iNewHeight, GL_UNSIGNED_BYTE, pResized);
Думаю, по именам понятно где что. iNewWidth и iNewHeight - ближайшие наименьшие степени 2. Рассчитаны правильно (проверено).
Результат аналогичный.
Что самое ужасное - не понятно какие именно размеры вызывают эти искажения. Некоторые изображения с размерами отличными от степеней 2 нормально отображаются.

Есть идеи?

[ Вложение ]
rescale.jpg

__________________
avtobus zekov

Сообщить модератору | | IP: Записан
Сообщение: 42119

Старое сообщение 24-01-2009 23:03
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Jumpdaphuckup! типичная трабла bmp.
Перепакуй в TGA и все пройдет.
ЗЫ. я не разбирался в чем там конкретно дело, но по-моему один бит сбивается в самом начале.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 42122

Старое сообщение 24-01-2009 23:43
-
Jumpdaphuckup!
Когда-то я здесь был

Дата регистрации: Nov 2005
Проживает: Україна / Харків
Сообщений: 128
Возраст: 36

Рейтинг



Нет, формат здесь не при чем - все получается аналогично и для jpg и для tga. К тому же на входе у меня нормальный массив данных. Я его проверял рисованием по точкам через винапи.

Кто-нибудь пробовал давать gluBuild2DMipmaps "неправильную текстуру"?

__________________
avtobus zekov

Сообщить модератору | | IP: Записан
Сообщение: 42124

Старое сообщение 25-01-2009 00:47
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



я не юзаю glu - у меня свой скалер и таких проблем нету.
А мож ты в размерах на один пиксель ошибся?

Добавлено 25-01-2009 в 04:10:

>>gluScaleImage(GL_RGB
а точно картинка GL_RGB ? не GL_INDEXED_COLOR или GL_RGBA ?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 42125

Старое сообщение 25-01-2009 01:10
-
Jumpdaphuckup!
Когда-то я здесь был

Дата регистрации: Nov 2005
Проживает: Україна / Харків
Сообщений: 128
Возраст: 36

Рейтинг



Все точно. Доказательство этому - нормальная заргузка текстур 128х128 64х256 и т.п.

Добавлено 25-01-2009 в 03:27:

Такое чувство, что где-то высота с шириной попутаны...

__________________
avtobus zekov

Сообщить модератору | | IP: Записан
Сообщение: 42126

Старое сообщение 25-01-2009 01:27
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Jumpdaphuckup! писал:
Думаю, по именам понятно где что. iNewWidth и iNewHeight - ближайшие наименьшие степени 2. Рассчитаны правильно (проверено).

Судя по тому, что в аттаче - квадрат, рассчитаны они неправильно. Должен быть прямоугольник 128x256.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 42127

Старое сообщение 25-01-2009 01:49
-
Jumpdaphuckup!
Когда-то я здесь был

Дата регистрации: Nov 2005
Проживает: Україна / Харків
Сообщений: 128
Возраст: 36

Рейтинг



Елки-палки, да это ж наложенная на квадрат текстура. А прямоугольник должен быть не 128x256, а 64х128

Цитата:
Jumpdaphuckup! писал:
ближайшие наименьшие степени 2


Добавлено 25-01-2009 в 12:38:

Кстати, текстуры 64х256 и 256х64 тоже не вызывают никаких проблем.

[ Вложение ]
nonpow2.jpg

__________________
avtobus zekov

Сообщить модератору | | IP: Записан
Сообщение: 42141

Старое сообщение 25-01-2009 10:38
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Ну обычно делают наибольшие, чтобы потерь не было.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 42147

Старое сообщение 25-01-2009 10:46
-
Jumpdaphuckup!
Когда-то я здесь был

Дата регистрации: Nov 2005
Проживает: Україна / Харків
Сообщений: 128
Возраст: 36

Рейтинг



Видать, придется свой рескейл писать...

__________________
avtobus zekov

Сообщить модератору | | IP: Записан
Сообщение: 42149

Старое сообщение 25-01-2009 10:53
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Jumpdaphuckup! вот с этого и надо было начинать

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 42153

Старое сообщение 25-01-2009 11:27
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


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

__________________

Сообщить модератору | | IP: Записан
Сообщение: 42154

Старое сообщение 25-01-2009 11:29
-
Jumpdaphuckup!
Когда-то я здесь был

Дата регистрации: Nov 2005
Проживает: Україна / Харків
Сообщений: 128
Возраст: 36

Рейтинг



XaeroX да, похоже на правду Но там дело не в этом. У меня изначально было три загрузчика: bmp, jpg и tga. Все они создавали массив точек, который успешно рисовался через винапи. Но при создании огл-текстуры из этого массива (если там не степени 2) получается хрень.

Если вообще убрать нафиг весь мой код и загружать текстуру так:

code:
AUX_RGBImageRec* texture = auxDIBImageLoad( strPath ); glGenTextures( 1, pIndex ); glBindTexture( GL_TEXTURE_2D, *pIndex ); gluBuild2DMipmaps(GL_TEXTURE_2D, 3, texture->sizeX, texture->sizeY, GL_RGB, GL_UNSIGNED_BYTE, texture->data);

Получается то же самое.

__________________
avtobus zekov

Сообщить модератору | | IP: Записан
Сообщение: 42158

Старое сообщение 25-01-2009 12:14
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


покрути glPixelStorei.
GL_UNPACK_ALIGNMENT, к примеру.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 42160

Старое сообщение 25-01-2009 12:28
-
Jumpdaphuckup!
Когда-то я здесь был

Дата регистрации: Nov 2005
Проживает: Україна / Харків
Сообщений: 128
Возраст: 36

Рейтинг



Да я уже свой рескейл написал. Он даже быстрее чем глу-шный. Правда, качество хуже. Но для редактора важнее скорость загрузки текстуры.

Цитата:
XaeroX писал:
GL_UNPACK_ALIGNMENT
Ага, я, помню, глядел косо на это слово, но не разбирался.

__________________
avtobus zekov

Сообщить модератору | | IP: Записан
Сообщение: 42168

Старое сообщение 25-01-2009 13:42
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 11:18. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Степень двойки, gluScaleImage и пр.
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024