Войти
ПрограммированиеФорумГрафика

OpenGL ES Android 2D Размеры текстурных атласов

#0
13:54, 14 мар. 2019

В игре используется множество мелкий изображений, которые уже в коде разбиваются по текстурам (атласам).
Что будет лучше по производительности? Одна большая текстура 1024x1024 или четыре по 512x512?


#1
14:30, 14 мар. 2019

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

#2
18:37, 14 мар. 2019

одна большая
чем текстура больше(пока памяти хватает) тем лучше(лучше больше в одну текстуру запихнуть чем много мелких)

#3
1:07, 15 мар. 2019

BH_
> 1024x1024
Это достаточно оптимальный объем. Как вариант можно сделать 512x2048 - это также против промахов как и 4 отдельные текстуры.

#4
16:59, 15 мар. 2019

/A\
> Одна большая - меньше переключений текстур, но больше кэш промахов.
с чего такой вывод? мы же не знаем насколько когерентны у него чтения

#5
17:04, 15 мар. 2019

0r@ngE
> с чего такой вывод? мы же не знаем насколько когерентны у него чтения
просто по статистике, раз нужна большая текстура, значит там будет много мелких картинок и распределены они будут для уменьшения размера текстуры, а не по порядку рисования

#6
17:13, 15 мар. 2019

Ну смотря насколько мелких. Текстурный кеш небольшой, и если там спрайты 128*128 - то большой атлас будет рулить.

#7
(Правка: 19:37) 19:36, 15 мар. 2019

0r@ngE
В текстуру выгружаются тысячи изображений размерами от 4x4 до 20x20. Анимации, юниты, предметы, декор, частицы. Всё это естественно используется вперемешку в самой игре

#8
20:45, 15 мар. 2019

BH_
В вашем случае без разницы. Не там оптимизируетесь.

ПрограммированиеФорумГрафика