Frame time 28ms на Samsung Galaxy A53 при цільових 16.6ms. Unity Profiler показує Camera.Render, що займає 18ms з них. Розробник дивиться у Frame Debugger — 340 draw calls, половина з яких це UI Canvas у режимі Screen Space - Overlay з Rebuild кожен кадр. Ми вирішуємо такі проблеми за день, але без точної діагностики ітерації розтягуються на тижні. Наш досвід — понад вісім років у геймдеві, більше 50 проєктів, де ми домагалися стабільних 60 FPS на середньому залізі.
Консультування з візуальної оптимізації — це діагностика вузьких місць та план конкретних дій, а не «використовуйте менше полігонів». Ми передаємо команді не лише звіт, а й розуміння, як самостійно знаходити та усувати проблеми в майбутньому. Гарантуємо скорочення часу на баг-фікс у 2–3 рази після нашої консультації.
Які проблеми вирішує візуальна оптимізація?
CPU side. UnityEngine.Rendering.RenderPipeline.Render у Profiler — перша точка входу. Якщо там > 10ms на мобілці при простій сцені — дивимося далі. Canvas.SendWillRenderCanvases — флаг проблемного UI. ShadowCaster.Render — тіней занадто багато або занадто великий shadow distance. Animator.Update з великою кількістю активних аніматорів у сцені — кожен активний Animator тратить CPU незалежно від видимості.
GPU side. Snapdragon Profiler для Android, Xcode GPU Frame Capture для iOS — точніше Unity Profiler для GPU-аналізу. Fillrate overdraw видно через Unity Scene View у режимі Overdraw — червоні зони це багаторазова перемальовка. Типова проблема: партикл-системи з Additive blending малюють по 15–20 шарів поверх фону — кожен шар повний fillrate pass.
Memory. Memory Profiler package — не вбудований Profiler. Снапшот купи показує конкретні текстури, що займають VRAM. Нестиснена 4K текстура = 64 МБ VRAM, без міпмапів ще гірше — при віддаленні об'єкта GPU все одно читає повне розширення.
Чому Dynamic Batching підводить на мобільних?
Dynamic batching автоматично батчить меші з однаковим матеріалом якщо вони <= 900 вершин і 300 трикутників. Але якщо в об'єктів різні MaterialPropertyBlock значення (наприклад, колір через скрипт) — батчинг ламається. GPU Instancing у 3 рази ефективніший на мобільних GPU, оскільки знижує кількість draw calls за рахунок одного виклику рендерингу для множини об'єктів. Перехід на GPU Instancing — одна з найефективніших змін.
Які типові проблеми ми знаходимо?
- Canvas Rebuild кожен кадр.
Canvas.willRenderCanvasesспрацьовує при будь-якій зміні дочірнього елемента — зсув, колір, текст. Якщо в HUD оновлюється таймер кожну секунду, весь Canvas перераховується. Рішення: поділ Canvas на статичні та динамічні частини. Анімовані елементи на окремий Canvas. - Shadow Distance. На мобільних платформах
Shadow Distance = 150(дефолт) малює каскадні тіні для всього що в 150 юнітах від камери. Реальна потреба — зазвичай 20–40 юнітів. Різниця в shadow render time — 3–4x. - MipMap Streaming не налаштований. Без
QualitySettings.streamingMipmapsActive = trueвсі текстури завантажуються в повній роздільній здатності при старті сцени. Для мобілок з 3–4 ГБ RAM це критично — сцена з 200 текстурами може зайняти 600 МБ VRAM при старті.
Як проходить консультація з візуальної оптимізації?
- Аудит. Запускаємо проєкт на цільовому пристрої з прикріпленим Profiler, знімаємо кілька характерних сцен. Аналізуємо frame breakdown, draw calls, fillrate, memory snapshot. Результат — список вузьких місць з оцінкою потенційного приросту.
- План дій. Пріоритезуємо за співвідношенням «складність виправлення / приріст продуктивності». Прості перемоги (shadow distance, canvas split, texture compression) — спочатку. Архітектурні зміни (перехід на GPU Instancing, реорганізація LOD) — з оцінкою трудозатрат.
- Підтримка реалізації. Ми реалізуємо зміни самі або консультуємо команду при самостійному виправленні. Для другого варіанту: письмовий технічний гайд з конкретними налаштуваннями та очікуваними результатами.
Що входить у консультацію з візуальної оптимізації?
- Документація: звіт з графіками, скріншотами Profiler та Frame Debugger, рекомендації за пріоритетами.
- Код оптимізацій: готові шейдери, скрипти для налаштування Instancing, конфіги для Addressables.
- Доступ: тимчасовий доступ до нашого демо-стенду з еталонними рішеннями.
- Навчання: 2-годинна сесія з розбором типових помилок та відповідями на питання команди.
- Підтримка: консультації по виниклих складностях протягом місяця після завершення основного етапу.
Ми використовуємо комбінований підхід: спочатку CPU-профілювання для пошуку логічних вузьких місць, потім GPU-деталізація через RenderDoc і Snapdragon Profiler. Це дозволяє знайти як очевидні, так і приховані проблеми — наприклад, неправильне налаштування LOD або неефективне використання шейдерів.
Інструменти, які використовуємо
| Інструмент | Призначення | Платформа |
|---|---|---|
| Unity Profiler + Frame Debugger | CPU/GPU профілювання, draw calls | Unity Editor |
| RenderDoc | Детальний GPU-аналіз | PC, консолі |
| Snapdragon Profiler | GPU-профілювання Android | Android (Adreno) |
| Xcode GPU Frame Capture | GPU-профілювання iOS | iOS (Metal) |
| Memory Profiler 1.1+ | Аналіз VRAM, текстури | Unity Editor |
Терміни та економія
| Тип консультації | Термін | Економія часу для команди |
|---|---|---|
| Експрес-аудит + звіт (1 сцена, 1 платформа) | 1–3 дні | до 2 тижнів самостійного розбору |
| Повний аудит продуктивності + план оптимізації | 5–10 днів | до 4 тижнів на пошук рішень |
| Аудит + реалізація оптимізацій | 2–6 тижнів | повне зняття головного болю по FPS |
Середня економія на проєкті — скорочення бюджету на налагодження на 30–50% за рахунок точного виявлення кореневих причин. Вартість консультації фіксується після первинного аналізу проєкту та цільових платформ. Зв'яжіться з нами, щоб обговорити ваш проєкт і отримати попередню оцінку. Замовте консультацію, і ми допоможемо вирішити проблеми з продуктивністю.






