Комментарий к Статье Библиотека OpenIL
Данная статья рассказывает о применении библиотеки OpenIL, используемой для загрузки графических изображений. Статья содержит пример под OpenGL.
Большое спасибо за статью !
olegf
Пожалуйста.Теперь возможно многие проблемы решаться по загрузке текстур.
Да, OpenIL - вещь нелохая......
Но чем она лучше SDL_image?
Очень доступная статья, спасибо
А дружит ли OpenIL с DDS? Он случайно их не умеет распаковывать/запаковывать?
Andrey
Все таки надо называть вещи своими именами, особенно название статьи. DevIL, так эта библиотека сейчас называется, название было изменено и стоит писать о новой версии этой библиотеки.
GLoom
Умеет, но оч мало настроек. Лучше возьми nvDXT.
Jihar
Понятно ну может это не правильный подход.но мне болше нравиться OpenIL типа Открытая Графическая Библиотека.
All
вот что-то с файлами *.tga у меня не получилось, выводит текстуру других оттенков, так точно не объяснишь.Я так и не понял в чем дело.
Еще в статье есть ошибка вот в этом месте:
//Тип хранения данных unsigned int type; //переопределить тип для OpenGL switch (type) { //...
Надо так:(именно так в примере)
//Тип хранения данных unsigned int type; //переопределить тип для OpenGL switch (bpp) { //...
robot,wat
Может это можно исправить?
Сам ею пользуюсь , но могу нажаловаться . Обещанный встроенный ресайз изображений НЕ работает ..
minorlogic
а еще не даунлоадится. по крайней мере пока у меня скачать не получилось :( Может, кто-нить снизойдет и согласиться скинуть мне ее на мыло? Я волшебное слово знаю: ПЛИИИИЗ :)
berserker
Дык! Не качает! Ее я и пробовал.
К уважаемому автору есть вопрос: DevIL состоит из 3 частей: il, uli, ilut
Первая (IL)- загрузка, операции преобразования текстур и !ВНИМАНИЕ! хранение текстур. Отсюда вопрос - зачем два раза создавать текстуру в памяти? Тем более, если DevIL ориентирован на OpenGL?
Имеется в виду---
// Получение растровых данных
unsigned char* copyData = ilGetData();
//Копирование растровых данных
memcpy(data, copyData, size);
--
Вторая (ILU)- фильтры и прочее, может кому-то и интересно, но не будем заострять внимание, там и так мануалов полно.
Третья (ILUT)- дял кого-то самое вкусное. Третья библиотека содержитв себе инициализацию текстур под OpenGL и DirectX, то есть полноценное их применение в данных продуктах.
Вопрос подключения данной библиотеки к своему проекту у меня уложился в полчаса. Ещё полчаса заняло внимательное чтение документации. Ещё час - написание тестового кода. Итого - два часа и рабочая версия.
Советую всем, кто чего-то не понял - почитать описание DevIL'а - оно весьма и весьма толковое. Плюс - посмотреть исходники, которые тоже доступны.
Edit --- уточнение
Neonic
Отсюда вопрос - зачем два раза создавать текстуру в памяти?Тем более, если DevIL ориентирован на OpenGL?
Имеется в виду---
// Получение растровых данных
unsigned char* copyData = ilGetData();
//Копирование растровых данных
memcpy(data, copyData, size);
--
Да кстати тут я немного не доработал
можно поступить так:
unsigned char *copyData = ilGetData(); //... gluBuild2DMipmaps(GL_TEXTURE_2D, bpp, width, height, type, GL_UNSIGNED_BYTE, copyData);
Поэтому прощу прощения за лишние инструкции.
Вторая (ILU)- фильтры и прочее, может кому-то и интересно, но не будем заострять внимание, там и так мануалов полно.
Третья (ILUT)- дял кого-то самое вкусное. Третья библиотека содержитв себе инициализацию текстур под OpenGL и DirectX, то есть полноценное их применение в данных продуктах.
Я написал самое простое применение библиотеки остальное можно найти в документации по ней.
Andrey
Ясно :-)
Я сделал так: написал интерфейс текстуры, полностью виртуальный класс, и в модуле рендера сделал полное описание текстуры, которое по большей части включало в себя переадресацию на DevIL. Естественно, заменил функции чтения на свои, чтобы интегрировать DevIL внутрь движка. Использовал только il версию бибилотеки.
Тема в архиве.