Pull to refresh

Comments 13

Можно пойти ещё дальше. Если ваша полоска — это череда пикселей, и эти пиксели повторяются, то можно, например, закодировать вашу зелёную полоску с белым штрихом так:
5green+2white+4*green
Короче, ещё и сжать её. Тогда она и килобайта весить не будет.
А если ещё всё это от каждого спрайта закинуть в атлас...

Если исходная картинка векторная, может и формат использовать нужно соответсвующий. Unity не умеет с векторной графикой работать?

Есть ассеты, которые вроде добавляют поддержку векторной графики, но на деле они просто конвертят кривые Безье в меши.


Чисто теоретически, вероятно, можно написать шейдер, который рисует вектор (читая PostScript из текстуры?).

Можно пойти ГОРАЗДО дальше и сделать всю графику на шейдерах.


Вот тут много сцен которые <64 kb. Ссылка

Он пригоден не только для Android, но и для любой платформы поддерживающей шейдеры.

А потом осознать, что фрагментный шейдер выполняется для каждого пикселя экрана и ужаснуться. Отражение следует делать в вершинном шейдере (вызывается для каждого вертекса — на каждый спрайт будет всего 4 вычисления, а фрагментный останется старым).
Всякие ухищрения и усложнения фрагментного шейдера — не стоят падения производительности. Разумнее перевести текстуру в грейскейл (маску) и умножать на цвет. Маски можно склеить по 4 штуки в одну текстуру или по 3 + использовать сжатие. Если не устраивает падение качества после сжатия и нужна более точная передача границ — всегда разумнее использовать геометрию с нужной точностью вместо текстур — это еще и филрейт на альфа-блендинге сэкономит, что весьма критично на мобильных платформах.
В результате статья — как не надо делать.

Не знаком с unity, а потому думал, сто дальше будут хитрые игры с линкером и патчи apk, которые снизят объем до сотен К. А тут какие-то детские игры с картинками...

Стоило бы тогда уж сразу продублировать сюда абзацы из стандартной справки или просто ссылку на неё.
Про атласы там, параметры обрезки…

А вот какойнить такой полезной статьи для девопсов нет по оптимизации сборки под андроид/иос? :)

Была статья на хабре "размер имеет значение". Особенно интересны комментарии.

Да. Просто запомнилась картинка.

Размер важен только когда скачивается приложение из стора. Далее средний пользователь и знать не знает ничего про размер, даже как узнать его. По этому микреж такой, который сильно усложняет продакшн — в топку. Делаем до 100 мб, чтобы качало без вайфая, а остальное грузим бандлами. Сплитим бандлы по разрешению и лимиту оперативы пользователя. Ну естественно, оптимизация важна, особенно если из коробки юзаем GPGS или что-то там ещё. Бывает и в 100 мб не влезает.

Если увижу в сторе три в ряд, которая весит 50 МБ, — сразу в топку.

Sign up to leave a comment.

Articles