OpenGL ES 2 - один большой атлас текстур против нескольких маленьких. Что лучше с точки зрения производительности?

Я разрабатываю игру для Android, используя уже существующий движок.

Я должен использовать большие текстуры для своих анимаций, и мне интересно, что лучше с точки зрения производительности. Новая версия движка поддерживает текстуры npot (если вы спросите себя, почему я использую такие разрешения).

Лучше иметь несколько атласов текстур 2330x1100 или только один атлас текстур 2330x(1100 x number_of_textures_i_need)? Влияет ли этот выбор на время загрузки? (Я думаю, что память, которую они требуют, одинакова, поскольку они содержат одинаковое количество пикселей)

Я где-то читал, что переключение текстур может быть медленной операцией.

побочные квесты:

1) текстуры горшков более эффективны (в сборке среды, чтобы она могла обрабатывать текстуры npot)?

2) могу ли я достичь некоторого предела измерения/памяти, используя только одну текстуру?


person Makers_F    schedule 07.01.2012    source источник
comment
Не должно быть большой разницы между использованием одной большой текстуры или их разделением. Пока вы загружаете все текстуры заранее. Обновление такой большой текстуры во время рендеринга может занять довольно много времени. Что касается использования памяти, например, при использовании RGB_565 одна такая текстура занимает около 5 МБ памяти, так что да, вы можете столкнуться с некоторыми ограничениями памяти.   -  person harism    schedule 08.01.2012
comment
@харизм спасибо! Да, он загружается только один раз при запуске приложения. Так ли мало vmemory на мобильных устройствах?   -  person Makers_F    schedule 08.01.2012
comment
На самом деле это может быть тот случай, когда использование памяти не является вашей самой большой проблемой, а вместо этого размер изображения. Если на iPad2 ограничение размера текстуры составляет 2048x2048 , я бы не сильно удивился, если бы на устройствах Android в целом было меньше.   -  person harism    schedule 08.01.2012


Ответы (1)


одна большая текстура должна быть лучше, потому что загрузка и активация медленные из-за загрузки памяти в видеопамять. Он также должен потреблять меньше энергии и, таким образом, улучшать пользовательский опыт ;-)

Попробуйте — и напишите длинный тест, чтобы доказать это.

person Karsten    schedule 23.07.2014