OpenGL ES, Изменение формата текстуры с RGBA8888 на RGBA4444 улучшит скорость заполнения? - PullRequest
0 голосов
/ 01 марта 2011

Я рендерил много больших изображений с помощью альфа-тестирования, и я достигаю скорости заполнения.

Если я изменю формат текстуры с RGBA8888 на RGBA4444, улучшится ли скорость заполнения?

РЕДАКТИРОВАТЬ: Аппаратное обеспечение Iphone 3GS и OpenGL версии 1.1

Ответы [ 2 ]

2 голосов
/ 02 марта 2011

Проводя некоторые тесты, я обнаружил следующее:

  • Загрузка PNG как RGBA8888 Я получаю 42fps
  • Загрузка PNG как RGBA4444 Я получаю 44fps
  • Загрузка pvrtc2 Я получаю 53 fps (и мне пришлось удвоить размер текстуры, потому что она не была в квадрате)

Кажется, что переход с rgba8888 на rgba4444 не улучшает частоту кадров. Но использование pvrtc2 может подойти.

1 голос
/ 01 марта 2011

Вы не указываете конкретное оборудование, о котором вы спрашиваете, но у Apple есть это , чтобы сказать о графических процессорах PowerVR на устройствах iOS:

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

Хотя это улучшит использование памяти, я не уверен, что это сильно повлияет на скорость заполнения. Возможно, вы почувствуете улучшение от возможности одновременно удерживать больше текстур в кеше, но я бы послушал мнение Томми о том, что операции с пикселями являются наиболее вероятным узким местом здесь.

Кроме того, когда дело доходит до размера текстуры, вы получите намного лучшее качество изображения при меньшем размере, используя сжатие текстур (например, PVRTC для графических процессоров PowerVR), чем снижение точности формата пикселей текстуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...