Каковы преимущества и недостатки PowerVR? - PullRequest
1 голос
/ 21 июля 2011

Мой игровой движок недавно добавил поддержку PowerVR (PVR), после некоторого поиска в Google и Википедии я знаю только определение PVR, но я не знаю, для чего он используется, каковы его преимущества и недостатки. Я разрабатываю игру для Android, что я должен использовать, PNG или PVR?

1 Ответ

5 голосов
/ 16 сентября 2011

(PowerVR - это торговая марка Imagination Technologies Ltd., относящаяся к их технологии ускорения графики. PVR - это формат контейнера текстур, используемый в PowerVR Insider SDK. PVRTC - это схема сжатия текстур PowerVR, которая, как мне кажется, вас интересует ... извиняюсь, если нет)

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

Downsides:

  • PVRTC имеет тенденцию быть больше, чем PNG на диске - данные PVRTC (например) очень хорошо подходят для хранения на диске.
  • PVRTC - это сжатие с потерями - иногда артефакты можно увидеть в текстурах PVRTC по сравнению с исходными изображениями. PNG без потерь, так что проблемы не существует
  • PVRTC недоступен для использования с другим графическим ускорением, кроме PowerVR (на данный момент) - посмотрите на сжатие DXT / S3TC (больше) или ETC (без альфа) для других платформ.
  • Скорее всего, будут работать только квадратные текстуры со степенью двух измерений - например, 32x32, 512x512 и т. Д.
  • Сжатие может быть довольно медленным

PNG не является форматом времени выполнения, поэтому единственное место, где есть преимущество сжатия PNG перед несжатыми изображениями, - это хранение на диске (или отправка по сети и т. Д.) - данные изображения PNG должны быть распакованы ЦПУ перед он может быть передан в GL или нарисован любым способом, т.е. PNG будет медленным , как вы можете получить для текстур на этих платформах.

PNG без потерь, а также поддерживает альфа-канал.

Итак ...

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

Дополнительное чтение:

Чтобы сделать текстуры PVRTC:

Надеюсь, это поможет ...

...