Формат контейнера для текстур ETC1 - PullRequest
3 голосов
/ 18 февраля 2012

Я ищу формат, который поддерживает mipmaps, cubemaps и 3d текстуры для использования в игре OpenGL ES 2.0. В Windows я использовал формат .dds из-за его поддержки сжатия DXT. Я думаю, что для мобильных программ существуют файлы .pkm, которые не поддерживают несколько текстур, и файлы .pvr, которые, как мне кажется, зависят от платформ PowerVR. Так,

-Могу ли я использовать .dds со сжатием ETC1? Есть ли проблема с лицензией, которая мешает мне использовать .dds на платформах, отличных от Windows?

- Поддерживают ли продукты других производителей графических процессоров (Adreno, Mali и т. Д.) Файлы .pvr? (Не PVRTC, просто .pvr со сжатием ETC1)

-Или есть другой формат файла, который я могу использовать для своих нужд?

Ответы [ 2 ]

4 голосов
/ 21 февраля 2012

Или есть другой формат файла, который я могу использовать для своих нужд?

Возможно, вы захотите взглянуть на http://www.khronos.org/opengles/sdk/tools/KTX/ и на программу для создания файлов KTX http://www.malideveloper.com/texture-compression-tool.php

Формат KTX поддерживает сжатые текстуры ETC1 с mipmaps.Он должен поддерживать и другие форматы сжатия, но я не знаю других инструментов, которые могут это сделать (мне это никогда не нужно).

Используя libktx, вы можете загружать текстуры (с mipmaps) из файла / памяти вGL объекты с «одной» строкой кода.Также он может распаковывать текстуры ETC1 в GL_RGB при загрузке файла .ktx, если устройство не поддерживает ETC1 (вам нужно вручную установить GLEW_OES_compressed_ETC1_RGB8_texture как здесь )

4 голосов
/ 18 февраля 2012

Да, вы можете использовать DDS для ETC1.Просто придумайте свой собственный код FOURCC.Насколько я знаю, ддс не запатентован.

Нет поставщика графического процессора, поддерживающего формат файла pvr (включая PoverVX).Поставщики графических процессоров заботятся только о сжатых данных текстуры (PVRTC, ETC, DXTC), а не о формате файлов (png, jpeg, dds, pvr).Пользователь / приложение несет ответственность за анализ формата файла для извлечения данных текстуры (сжатых или несжатых).

Вы можете использовать любой формат файла, который подходит для ваших нужд.Придумай свое.Например, вот так:

[4 bytes] - width
[4 bytes] - height
[4 bytes] - format id (1 - etc1, 2 - dxt, 3 - ... whatver)
[4 bytes] - count of images (mipmaps/cubemaps/whatever)
[bytes] - data
...