С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
OpenGL
Войти
Регистрация
Восстановить пароль
 
Феликс Фалько
2 / 2 / 0
Регистрация: 05.08.2016
Сообщений: 69
1

DevIL - 64-битная текстура не отображается

27.11.2016, 20:00. Просмотров 217. Ответов 1
Метки нет (Все метки)

Есть библиотека DevIL. Она грузит текстуры.
C++
1
play_textura(IL_PNG, "c/DEMO/m/MENU.png", &imageFrame[5], GL_LINEAR);
А вот устройство этой функции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
inline void play_textura(ILenum FileType, char* filename, textureImage* texture, GLint smooth)
   {
       ilLoad(FileType, reinterpret_cast<const ILstring>(filename));
       texture->width = ilGetInteger(IL_IMAGE_WIDTH);
       texture->height = ilGetInteger(IL_IMAGE_HEIGHT);
       texture->bpp = ilGetInteger(IL_IMAGE_BYTES_PER_PIXEL);
       texture->imageData = ilGetData();
       ilEnable(IL_FORMAT_SET);
       unsigned int type = ilGetInteger(IL_IMAGE_FORMAT);
       glGenTextures(1, &texture->texID);
       glBindTexture(GL_TEXTURE_2D, texture->texID);
       gluBuild2DMipmaps(GL_TEXTURE_2D, texture->bpp, texture->width, texture->height, type, GL_UNSIGNED_BYTE, texture->imageData);
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, smooth);
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, smooth);
 
       glDeleteTextures(0, &texture->texID);
 
   }
Как вы заметили, грузит она их просто в экземпляр структуры данных по имени "texture".
В цикле рендера вывожу её уже на экран этим кодом
C++
1
2
3
4
5
6
7
8
9
10
        glBindTexture(GL_TEXTURE_2D, imageFrame[5].texID);
        glEnable(GL_TEXTURE_2D);
 
        glBegin(GL_QUADS);
        glTexCoord2d(0, 1);     glVertex3d(0 + 20, 0, 19);
        glTexCoord2d(1, 1);     glVertex3d(1024, 0, 19);
        glTexCoord2d(1, 0);     glVertex3d(1024, 768, 19);
        glTexCoord2d(0, 0); glVertex3d(0 + 20, 768, 19);
        glEnd();
        glDisable(GL_TEXTURE_2D);
Текстура MENU.png сделана в фотошопе и сохранена как 64 битная. Нажимаю компиляцию - выводит черный экран. Если сохраняю как 32 битную то всё норм выводит. Пробовал glTexImage2D(... , RGBA16 ,...); вставлять во все места кода, - те же фаберже. Кто-нибудь рендерил 64-битные текстуры или это дурной тон ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2016, 20:00
Ответы с готовыми решениями:

Текстура вверх ногами, DevIL (OpenIL)
Здравствуйте, использую для загрузки изображений библиотеку DevIL (OpenIL) как...

OpenGL + Win8, не отображается текстура
Столкнулся с такой проблемой у меня не отображается текстура, не выдаёт ошибку,...

Не отображается текстура SDL + OpenGL
Вот код SDL_Window *window = NULL; SDL_Surface *surf = NULL; SDL_GLContext...

OpenGl под C#. Текстура отображается неверно
Недавно разобрался как использовать Tao для взаимодействия OpenGL и C#, и вот ...

OpenIL (DevIL) и загрузка текстур в массив
Здравствуйте, если кто-то из вас использует библиотеку OpenIL (DevIL) для...

1
snake32
1665 / 1117 / 197
Регистрация: 26.02.2009
Сообщений: 4,136
Записей в блоге: 5
28.11.2016, 01:54 2
Попробуйте заменить GL_UNSIGNED_BYTE на GL_UNSIGNED_SHORT
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2016, 01:54

Devil загрузка текстуры ошибка сегментирования
Сабж #include &lt;iostream&gt; #include &lt;IL/il.h&gt; #include &lt;IL/ilu.h&gt; #include...

Некорректно отображается текстура
Почему спрайт нормально отображается только после 3 клика, при том что счетчик...

64-х битная система думает, что она 32-х битная
У меня 64-х битная винда с недавних пор перестала запускать х64 программы


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru