Загрузка текстуры DDS - PullRequest
       17

Загрузка текстуры DDS

3 голосов
/ 23 февраля 2009

Как загрузить файл текстуры dds в текстуру карты OpenGL 2dtexture или cube?

Ответы [ 3 ]

4 голосов
/ 23 февраля 2009

Полагаю, вы используете метод glCompressedTexImage2DARB и его друзей.

Этот PDF содержит многообещающую информацию, которая может быть вам полезна.

3 голосов
/ 26 февраля 2009

В зависимости от ваших потребностей, библиотека DevIL может позаботиться о загрузке OpenGL с содержимым файла DDS.

0 голосов
/ 23 февраля 2009

Если DDS содержит сжатую текстуру, тогда используйте glCompressedTexImage2DARB (), если он содержит несжатые данные, применяется обычная процедура glTexImage2D. Один раз для каждого уровня мип-карты, если файл DDS содержит мип-карты, и один раз для каждого грани кубической карты, если это кубическая карта.

Чтобы узнать, как прочитать заголовок и данные в файле DDS, посмотрите документацию для него на MSDN или в DirectX SDK. Это довольно стандартный формат контейнера, сюрпризов не так уж много.

Имейте в виду, что DDS использует левый верхний источник изображения, тогда как OpenGL предполагает левый нижний источник данных изображения. Это означает, что вы, вероятно, захотите перевернуть изображение DDS по вертикали после загрузки. Вы можете сделать это, не распаковывая их, если они находятся в DXT1 / 3/5, но это немного сложный процесс, который включает битовую манипуляцию с содержимым каждого 4x4 блок сжатия.

...