Консультування з питань візуальної оптимізації графіки ігор

Наша компанія з розробки відеоігор веде незалежні проекти, спільно з клієнтом створює ігри та надає додаткові операційні послуги. Досвід нашої команди дозволяє нам охопити всі ігрові платформи та розробити приголомшливий продукт, що відповідає баченню клієнта та перевагам гравців.

Від імерсивних застосунків до ігрових світів і 3D-сцен

Наша виділена команда для VR/AR/MR-розробки, Unity-продакшну і 3D-моделювання та анімації — з власними кейсами і презентаціями.

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Консультування з питань візуальної оптимізації графіки ігор
Проста
~1 робочий день
Часті питання

Наші компетенції

Які етапи розробки гри?

Останні роботи

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    683
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    862
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    491
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    533

Консультування за питаннями візуальної оптимізації графіки ігор

Час фрейму 28ms на Samsung Galaxy A53 при цільових 16.6ms. Unity Profiler показує Camera.Render займає 18ms з них. Розробник дивиться в Frame Debugger — 340 draw calls, половина з яких це UI Canvas у режимі Screen Space - Overlay з Rebuild кожний кадр. Це розв'язується за день. Але без розуміння, де саме втрата — ітерації займають тижні.

Консультування по візуальній оптимізації — це діагностика вузьких місць та план конкретних дій, а не «використовуйте менше полігонів».

Що профілюємо та де шукаємо

CPU сторона. UnityEngine.Rendering.RenderPipeline.Render у Profiler — першу точку входу. Якщо там > 10ms на мобілі при простій сцені — шукаємо далі. Canvas.SendWillRenderCanvases — ознака проблемного UI. ShadowCaster.Render — тіней занадто багато або shadow distance занадто великий. Animator.Update з великою кількістю активних аніматорів у сцені — кожний активний Animator витрачає CPU незалежно від видимості.

GPU сторона. Snapdragon Profiler для Android, Xcode GPU Frame Capture для iOS — точніше Unity Profiler для GPU-аналізу. Fillrate overdraw видно в Unity Scene View у режимі Overdraw — червоні зони це багатократна перерисовка. Типова проблема: particle-системи з Additive blending рисують 15-20 шарів поверх фону — кожний шар це повний fillrate pass.

Пам'ять. Memory Profiler package — не вбудований Profiler. Знімок кучі показує конкретні текстури, які займають VRAM. Незатиснена 4K текстура = 64 МБ VRAM, без mipmap ще гірше — GPU все одно читає повну роздільну здатність при віддалені від об'єкту.

Типічні знахідки при аудиті

Dynamic batching не працює. Unity автоматично батчить меші з одинаковим матеріалом якщо вони <= 900 вершин та 300 трикутників. Але якщо об'єкти мають різні значення MaterialPropertyBlock (наприклад, колір через скрипт) — батчинг ламається. Рішення: GPU Instancing + Instanced property через shader UNITY_INSTANCING_BUFFER.

Canvas Rebuild кожний кадр. Canvas.willRenderCanvases стріляє при будь-якій зміні дочернього елемента — зміщення, колір, текст. Якщо HUD оновлює таймер кожну секунду, весь Canvas перераховується. Рішення: розділення Canvas на статичні та динамічні частини. Анімовані елементи на окремому Canvas — розрив parent-child ієрархії не критичний для візуалу, але прибирає rebuild.

Shadow Distance. На мобільних платформах Shadow Distance = 150 (дефолт) рисує каскадні тені для всього що в 150 юнітах від камери. На top-view або ізометрії це весь видимий рівень. Реальна потребу — зазвичай 20-40 юнітів. Різниця у часі shadow render — 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) — з оцінкою трудозатрат.

Третій етап: підтримка реалізації. Можемо реалізувати самі або консультувати команду при самостійному виправленні. Для другого варіанту: письмовий технічний гайд з конкретними налаштуваннями та очікуваними результатами.

Інструменти, які використовуємо

Unity Profiler, Memory Profiler 1.1+, Frame Debugger — базовий набір. RenderDoc для детального GPU-аналізу на PC. Snapdragon Profiler, ARM Mali Graphics Debugger — для Android з відповідними GPU. Xcode GPU Frame Capture + Metal Performance HUD — для iOS. Stats вікно в Game View для швидкої оцінки батчей та вершин.

Терміни

Тип консультації Термін
Експрес-аудит + звіт (1 сцена, 1 платформа) 1–3 дні
Повний аудит продуктивності + план оптимізації 5–10 днів
Аудит + реалізація оптимізацій 2–6 тижнів

Вартість розраховується після первинного аналізу проекту та цільових платформ.