![]() |
Показать все 14 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- OpenGL (https://hlfx.ru/forum/forumdisplay.php?forumid=7)
-- Степень двойки, gluScaleImage и пр. (https://hlfx.ru/forum/showthread.php?threadid=1702)
Степень двойки, gluScaleImage и пр.
Значит так.
Есть изображение: BMP, 24bpp, 122x169.
Задача: использовать его в качестве текстуры OpenGL, чего ж еще.
Изображение читается правильно (проверено).
Так как красная книга обещала автоматический рескейл "неправильных текстур" в gluBuild2DMipmaps, использовал именно эту функцию. Эффект показан в аттаче.
Затем пробую такое:
gluScaleImage(GL_RGB, m_iOriginalWidth, m_iOriginalHeight, GL_UNSIGNED_BYTE, texture->data, iNewWidth, iNewHeight, GL_UNSIGNED_BYTE, pResized); |
__________________
avtobus zekov
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'
Нет, формат здесь не при чем - все получается аналогично и для jpg и для tga. К тому же на входе у меня нормальный массив данных. Я его проверял рисованием по точкам через винапи.
Кто-нибудь пробовал давать gluBuild2DMipmaps "неправильную текстуру"?
__________________
avtobus zekov
я не юзаю 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'
Все точно. Доказательство этому - нормальная заргузка текстур 128х128 64х256 и т.п.
Добавлено 25-01-2009 в 03:27:
Такое чувство, что где-то высота с шириной попутаны...
__________________
avtobus zekov
__________________
Елки-палки, да это ж наложенная на квадрат текстура. А прямоугольник должен быть не 128x256, а 64х128
__________________
avtobus zekov
Ну обычно делают наибольшие, чтобы потерь не было.
__________________
Видать, придется свой рескейл писать...
__________________
avtobus zekov
Jumpdaphuckup! вот с этого и надо было начинать
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
У меня еще есть подозрение (судя по скрину), что у тебя нифига не рискейлилось. То есть ты загрузил старую картинку с новыми значениями ширины и высоты. Ты именно pResized загружаешь в текстуру? Он достаточного размера маллокнут?
__________________
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
покрути glPixelStorei.
GL_UNPACK_ALIGNMENT, к примеру.
__________________
Да я уже свой рескейл написал. Он даже быстрее чем глу-шный. Правда, качество хуже. Но для редактора важнее скорость загрузки текстуры.
__________________
avtobus zekov
Временная зона GMT. Текущее время 14:04. | Показать все 14 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024