Comments 13
Можно пойти ещё дальше. Если ваша полоска — это череда пикселей, и эти пиксели повторяются, то можно, например, закодировать вашу зелёную полоску с белым штрихом так:
5green+2white+4*green
Короче, ещё и сжать её. Тогда она и килобайта весить не будет.
А если ещё всё это от каждого спрайта закинуть в атлас...
Он пригоден не только для Android, но и для любой платформы поддерживающей шейдеры.
А потом осознать, что фрагментный шейдер выполняется для каждого пикселя экрана и ужаснуться. Отражение следует делать в вершинном шейдере (вызывается для каждого вертекса — на каждый спрайт будет всего 4 вычисления, а фрагментный останется старым).
Всякие ухищрения и усложнения фрагментного шейдера — не стоят падения производительности. Разумнее перевести текстуру в грейскейл (маску) и умножать на цвет. Маски можно склеить по 4 штуки в одну текстуру или по 3 + использовать сжатие. Если не устраивает падение качества после сжатия и нужна более точная передача границ — всегда разумнее использовать геометрию с нужной точностью вместо текстур — это еще и филрейт на альфа-блендинге сэкономит, что весьма критично на мобильных платформах.
В результате статья — как не надо делать.
Не знаком с unity, а потому думал, сто дальше будут хитрые игры с линкером и патчи apk, которые снизят объем до сотен К. А тут какие-то детские игры с картинками...
Про атласы там, параметры обрезки…
А вот какойнить такой полезной статьи для девопсов нет по оптимизации сборки под андроид/иос? :)
Была статья на хабре "размер имеет значение". Особенно интересны комментарии.
Размер важен только когда скачивается приложение из стора. Далее средний пользователь и знать не знает ничего про размер, даже как узнать его. По этому микреж такой, который сильно усложняет продакшн — в топку. Делаем до 100 мб, чтобы качало без вайфая, а остальное грузим бандлами. Сплитим бандлы по разрешению и лимиту оперативы пользователя. Ну естественно, оптимизация важна, особенно если из коробки юзаем GPGS или что-то там ещё. Бывает и в 100 мб не влезает.
Уменьшение размера файла сборки Android в Unity