OpenGL ES, как вы визуализируете PVR текстуры?
Изменить: хорошо, извините, у меня была простая ошибка программирования, есть ли способ удалить этот вопрос?
У меня есть сжатые текстуры, которые являются файлами PVR, но я не могу нарисовать их в своем приложении для iPad, используя OpenGL ES.
Я могу отлично рисовать файлы PNG, я знаю, что файлы PVR загружаются правильно. Существуют ли какие-то специальные функции рисования OpenGL, которые мне нужно вызывать для рисования файлов PVR?
Изменить: все, что я получаю, это белое изображение.
Любая информация ценится.
2 ответа
После загрузки текстуры PVR ничем не отличаются от других форматов. Вы забыли пропустить заголовок во время загрузки данных или использовали неверные параметры для glCompressedTexImage2D? Возможно даже, что инструмент сжатия не смог преобразовать изображения из-за неправильного размера или цветового формата.
Рисование текстур PVRTC должно быть точно таким же, как и у любого другого формата текстур - похоже, проблема заключается в загрузке вашего кода. О каких-либо ошибках GL сообщают во время загрузки?
Основное отличие от загрузки несжатых текстур в строке:
glCompressedTexImage2D(GL_TEXTURE_2D, level, GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG, width, height, 0, size, data);
или же
glCompressedTexImage2D(GL_TEXTURE_2D, level, GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG, width, height, 0, size, data);
Убедитесь, что вы не устанавливаете режим фильтра GL для использования MIP-карт, если они также не находятся в текстуре.
Поиск PVRTC в документах Apple дает хорошее представление о том, как использовать эти текстуры.