DXT декомпрессия
В общем решил начать изучать OpenGL, но все понемногу. Решил разобраться как устроен modelviewer. Естественно, использую Qt4 и его модуль, но вопрос сейчас не по 3D графике :)
Не могу прочитать BLP %) Точней могу, но не понимаю как правильно оперировать с данными. Использую squish библиотеку для декомпрессии изображения, но наверное делаю что-то не так. Никак не получается вывести картинку - вместо нее набор цветопикселей :) Вот код (может кому-то он ничего не скажет, но суть, я думаю, поймете) Код:
QPixmap Texture::getImage() PS WMV 0.4 http://wowmv.svn.sourceforge.net/viewvc/wowmv/src/ WMV Latest http://code.google.com/p/wowmodelviewer/source/browse/ SQUISH http://code.google.com/p/libsquish/ |
А зачем его разжимать? DXT это "железный" формат.
|
Цитата:
|
|
Вот уже что-то)
Код:
QPixmap Texture::getImage() http://my.jetscreenshot.com/4271/20120325-hutr-66kb.jpg Делал setColorTable и заполнял ее из ARGB[256] куска после данных, тогда картинка вообще белая -_- |
палитра находится сразу за mipmapSize блоками
|
Ну я с нее и заполнял.
|
Первый намек видимо был не понят.
http://www.opengl.org/registry/specs...ssion_s3tc.txt glCompressedTexImage2D GL_COMPRESSED_RGBA_S3TC_DXT1_EXT GL_COMPRESSED_RGBA_S3TC_DXT3_EXT GL_COMPRESSED_RGBA_S3TC_DXT5_EXT |
Уже разобрался, я так понял что в дате указан номер цвета из палитры. Прогоняю 256х256 цикл, но не получаю нужного)) Код взял из модельвивера. Получается такая фигня.
http://my.jetscreenshot.com/4271/20120325-gyd8-106kb PS если убрать все эти манипуляции с uint32 и сделать мой вариант через стурктуру и преобразовение в rgba от qt то тоже самое. Код:
for (quint32 x = 0; x < m_header.width; x++) |
Тема превратилась в "как прочитать BLP" :)
|
Все! Я это сделал) Осенило что картинка была белой после того как я устанавливал палитру, значит альфа была нулевая. Установил палитру так же, только альфу в ней сделал 255 и все четко :)
http://my.jetscreenshot.com/4271/20120325-jjrz-70kb |
Текущее время: 04:12. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS