Границы памяти Android-графики - PullRequest
5 голосов
/ 21 декабря 2010

Я создаю игру для Android с использованием opengl и порта cocos2d (http://code.google.com/p/cocos2d-android-1). Я нацеливаюсь на широкий диапазон устройств и хочу убедиться, что он работает хорошо. Я тестирую только на Nexus и надеюсь получить некоторую информацию от людей с опытом работы на медленных устройствах.

В настоящее время игра использует две текстуры 1024x1024, а также две текстуры 256x256. Это в пределах большинства устройств? У кого-нибудь есть эмпирическое правило или опыт работы с ограничениями графической памяти в этих случаях? Если память gfx превышена, выводится ли она в обычную память?

Ответы [ 3 ]

9 голосов
/ 28 декабря 2010

Java-приложения имеют 16Mo (MDI) или 24MO (HDPI). Но Native - это не так, и OpenGL Java API - это всего лишь оболочка JNI. Таким образом, вы можете загрузить на графический процессор более 24Mo текстур. Мой опыт состоял в том, чтобы сначала ограничить Atlas 512 * 512 (потому что G1 работал медленно на больших текстурах), но сегодня я использую большую текстуру атласа.

В наших нынешних играх используется 20-50 Мо баранов и 2048 * 2048 текстур.

1 голос
/ 07 января 2015

Старый пост, я знаю, но в настоящее время вы говорите по крайней мере 128 МБ в виртуальной машине для доступного пространства загрузки на битовые карты в памяти с помощью Android Java.

С текстурами вы загружаете вне пространства приложения (c).Таким образом, предел загрузки такой же, как память телефона.(Вы заметите, что в играх с большим объемом памяти значки возвращаются на главный экран)

1 голос
/ 21 декабря 2010

Afaik Ограничения памяти для текстур такие же, как и ограничения памяти вашего приложения, которые, как я полагаю, в большинстве ситуаций составляют 16 мегабайт, хотя это может быть и вся доступная память телефона, которая доступна.

У меня естьЯ загружал в свои приложения НАМНОГО больше, чем это, прежде чем я столкнулся с проблемами, по крайней мере, одна текстура 2048x2048 и несколько текстур 512x512, все 8888 в памяти.

У меня никогда не было ошибки oom при связывании текстуры, только при загрузкерастровые изображения, так что я надеюсь, что это поможет.

...