Симулятор iPhone: OpenGL ES: Внутренний формат текстур - PullRequest
0 голосов
/ 09 декабря 2010

После нескольких тестов в симуляторе iPad я обнаружил, что 16-битная текстура 1024x1024 в формате GL_RGBA GL_UNSIGNED_SHORT_4_4_4_4 выделяет 4 МБ памяти, что составляет 1024x1024 32 бит / с.В настоящее время я не могу проверить это поведение на реальном устройстве.

Кто-нибудь знает, поддерживается ли RGBA 4 бита на канал на iPad или нет?

В документации рекомендуется использовать GL_UNSIGNED_SHORT_4_4_4_4 дляэффективность памяти и рекомендуется использовать симулятор для тестов памяти ... что-то здесь не так.

1 Ответ

3 голосов
/ 09 декабря 2010

На самом деле, Руководство по программированию OpenGL ES для iOS предлагает вам не проверить на симуляторе производительность:

Важно : производительность рендеринга OpenGL ES в симуляторе не имеет никакого отношения к производительности OpenGL ES на актуальное устройство. Симулятор обеспечивает оптимизированный программный растеризатор, который использует вектор возможности обработки вашего Компьютер Macintosh. В результате ваш Код OpenGL ES может работать быстрее или медленнее в симуляторе iOS (в зависимости от твой компьютер и кто ты рисунок), чем на реальном устройстве. Всегда профилируйте и оптимизируйте свой рисование кода на реальном устройстве и никогда не предполагайте, что симулятор отражает реальная производительность.

В разделе " Рекомендации по работе с данными текстуры " этого руководства они рекомендуют использовать текстуры сжатия текстур PowerVR (PVRTC) вместо любых несжатых форматов. Текстуры PVRTC будут использовать гораздо меньше памяти, чем любой несжатый формат (в 8 или 16 раз меньше по сравнению с 32-битной несжатой текстурой).

Что касается 4 битов на канал, они утверждают это:

Если ваше приложение не может использовать сжатые текстуры, рассмотрите возможность использования пиксельный формат с меньшей точностью. текстуры в RGB565, RGBA5551 или Формат RGBA4444 использует половину памяти текстуры в формате RGBA8888.

...