SpriteSharp - это эффективное решение для генерации более качественных мешей для спрайтов, позволяющее уменьшить общее количество полигонов в сцене, количество draw call, уменьшить overdraw и снизить нагрузку на CPU.
Несмотря на то, что Unity способен делать это самостоятельно, возможности слишком ограничены. Unity не предоставляет никаких опций, которые можно настроить с целью добиться оптимальных результатов, а иногда сгенерированные Unity меши попросту настолько плохи, что приходится устанавливаться для спрайтов режим Full Rect, теряя весь выигрыш от уменьшения overdraw.
Именно поэтому был создан SpriteSharp. Он добавляет к встроенной в Unity генерации мешей изменяемые для каждого спрайта опции, позволяя получить оптимальное сочетание количества полигонов и overdraw. Это особенно важно при работе со сложными сценами и при разработке под мобильные платформы, где overdraw - извечная проблема.
Поддерживается Unity 5.0 и новее, Personal и Pro лицензии.
SpriteSharp можно приобрести в Asset Store.
Буду рад любым отзывам и пожеланиям
Еще несколько мыслей:
— В сцене с большим количеством спрайтов, разница между 1000 и 100 полигонов на спрайт выльется в большой прирост производительности.
— SpriteRenderer батчится только в пределах определенного количества полигонов, и это ограничение составляет около 700 полигонов. Так происходит потому, что батчинг выполняется на CPU. Таким образом, уменьшение количества полигонов в спрайтах также уменьшает нагрузку на CPU и количество draw calls.
— Unity не знает заранее, будет ли к спрайтам применяться масштабирование, и предполагает, что все они будут рисоваться на экране в масштабе 1:1. Это часто приводит к ситуации, когда оказывается сгенерирован высокополигональный меш для спрайт, который занимает относительно мало экранной площади, что является пустой тратой ресурсов. Именно тут и пригождается ручная настройка.
Сравнение мешей, сгенерированных Unity и SpriteSharp:
Еще картинки:
Скрытый текст: