Консультирование по вопросам визуальной оптимизации графики игр

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

От иммерсивных приложений до игровых миров и 3D-сцен

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

Посетить персонализированный сайт
Показано 1 из 1 услугВсе 242 услуг
Консультирование по вопросам визуальной оптимизации графики игр
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции
Какие этапы разработки игры?
Последние работы
  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    671
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    860
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    490
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    533

Консультирование по вопросам визуальной оптимизации графики игр

Frame time 28ms на Samsung Galaxy A53 при целевых 16.6ms. Unity Profiler показывает Camera.Render занимает 18ms из них. Разработчик смотрит в Frame Debugger — 340 draw calls, половина из которых это UI Canvas в режиме Screen Space - Overlay с Rebuild каждый кадр. Это решаемо за день. Но без понимания, где именно потеря — итерации занимают недели.

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

Что профилируем и где ищем

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 не работает. 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 юнитах от камеры. На топ-вью или изометрии это весь видимый уровень. Реальная потребность — обычно 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) — с оценкой трудозатрат.

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

Инструменты, которые используем

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 недель

Стоимость рассчитывается после первичного анализа проекта и целевых платформ.