Являются ли текстуры OpenGL более эффективными по памяти, чем растровые изображения Android? - PullRequest
4 голосов
/ 28 февраля 2012

У меня есть пользовательское приложение карты, которое работает со многими растровыми изображениями размером 256x256 (png, jpg). В настоящее время я использую View 2d canvas и добавляю все изображения как RGB_565. Хотя я в целом доволен производительностью приложений, у меня есть функции, которые я хотел бы добавить, для которых потребуется еще больше фрагментов карты (растровые изображения). Я думал об использовании opengl, но я довольно новичок в этом.

  1. Будет ли OpenGL текстуры более эффективно использовать память, чем сохранение растровых изображений вокруг? Я предполагаю, что вы можете загрузить растровое изображение в текстуру, а затем избавиться от растрового изображения

  2. Является ли приемлемой практикой в ​​opengl динамическая загрузка множества различных текстур во время выполнения?

  3. Вам нужно кэшировать текстуры или графический процессор обрабатывает это для вас?

UPDATE: Я получил хороший подробный ответ на этот вопрос в GameStack.

1 Ответ

1 голос
/ 28 февраля 2012
  1. Загрузка множества экземпляров растрового изображения в приложении может иногда вызывать OOM.
  2. Загрузить данные в текстуру можно в собственном коде. Это более эффективно, чем сделать это в приложении, просто вызовите memcpy, экземпляр растрового изображения не требуется.
  3. Вы должны создать текстуру gen и явно ее удалить.
...