Настройка уровней детализации (LOD) для графики

Мы сталкиваемся с LOD-проблемами на каждом втором проекте. Неправильно настроенный [LOD Group](https://docs.unity3d.com/Manual/class-LODGroup.html) в Unity даёт обратный эффект: LOD0 переключается на LOD1 слишком рано, игрок видит резкий pop, и это воспринимается как баг. Или переходы настроены по S

Наши компетенции

Другие услуги студии

VR/AR/MR приложения на заказ

Впечатляйте клиентов и обучайте команду в виртуальной реальности

Разработка игр на Unity

От идеи до релиза — игры, которые запоминаются

3D-моделирование и анимация

Оживим ваш продукт в объёмной графике и анимации

VR-тренажёры промышленного оборудования

Тренируем операторов на технике без риска и простоя

AR-инструкции для производства

Пошаговые подсказки прямо на оборудовании — без бумаги

Safety-тренажёры

Отработка ЧС и техники безопасности без выхода на объект

VR/AR-тренинги

Обучаем персонал сервису, адаптации и soft skills в VR

Обучающие викторины

Проверка знаний в формате игры — легко и без стресса

Корпоративные видеоинструкции

Понятные ролики для обучения сотрудников и клиентов

Геймификация бизнес-процессов

Мотивируем команду через игровые механики в KPI и HR

Приложения для инфокиосков

Интерактивные экраны для магазинов, стендов и офисов

VR/AR-инсталляции

Wow-эффект для брендов на выставках, ивентах и в шоу-румах

Виртуальные выставки и музеи

Ваша экспозиция доступна из любой точки мира — 24/7

Event-квесты и брендированные игры

Запоминающиеся игры для конференций и клиентских ивентов

Часто задаваемые вопросы

Последние работы

  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    1504
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    1005
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    633
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    716
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Обучающая викторина для детей «Покупки в магазине»
    95

Мы сталкиваемся с LOD-проблемами на каждом втором проекте. Неправильно настроенный LOD Group в Unity даёт обратный эффект: LOD0 переключается на LOD1 слишком рано, игрок видит резкий pop, и это воспринимается как баг. Или переходы настроены по Screen Relative Height без учёта реального расстояния — на ортографической камере LOD вообще не работает. Наша задача — сделать LOD незаметным, но эффективным.

Суть в том, что LOD — это система управления сложностью сцены в зависимости от видимости объекта. Она работает правильно только когда учтены: тип камеры, скорость движения игрока, освещение (отбрасываемые тени у LOD1 часто хуже, чем у LOD0), и то, как движок считает расстояние.

Как возникает LOD pop и что с ним делать?

LOD Pop — главная визуальная проблема. Происходит, когда геометрия и/или текстуры между уровнями отличаются слишком сильно. Классический случай: художник сделал LOD1 с на 60% меньшим количеством полигонов, но UV-развёртка поехала, и нормал-карта не компенсирует потерю формы. Переход с 10 метров — заметен невооружённым глазом. Решается через правильный LOD-генератор (мы используем Simplygon или Unity LOD Generator) с сохранением UV-seam'ов и проверкой normal projection.

Тени не следуют за LOD-переходами. В Unity Shadow Caster Culling работает независимо от LOD Group. Если у вас LOD2 — плоский billboard с 2 полигонами, а тень всё ещё считается от LOD0 mesh (потому что Force Shadow Casting = On), вы платите за рендер теней от полной геометрии объекта, которого визуально нет. Это легко пропустить — Frame Debugger показывает Shadow Pass с полным Draw Call-бюджетом. Мы гарантируем устранение таких скрытых расходов.

HLOD (Hierarchical LOD) не настроен для больших сцен. В open-world проектах стандартный LOD Group не работает на расстоянии свыше 500 метров — объекты просто culled, но Scene не выгружается. Unity HLOD (через HLOD Creator пакет) объединяет дальние объекты в один mesh автоматически. Без этого у вас может быть 3000 Draw Calls от деревьев на горизонте. Оценим ваш проект за 1–2 дня.

Почему LOD-политика должна отличаться для разных типов объектов?

Под каждую категорию объектов (персонажи, здания, пропсы, растительность) устанавливаем отдельную LOD-политику. Пример из практики — мобильная RPG, открытый мир 2×2 км. Деревья: LOD0 (500 полигонов) до 15 метров, LOD1 (80 полигонов) до 50 метров, LOD2 (billboard cross) до 150 метров, Culled за 150 метров. Здания: LOD0 до 30 метров, LOD1 до 80 метров, LOD2 до 200 метров. Такая настройка дала снижение Draw Calls с 680 до 210 в центре города.

Для Unreal Engine работаем с Nanite там, где это применимо — на статичных мешах с высоким poly count. Но Nanite не заменяет LOD для движущихся объектов и не работает с полупрозрачными материалами. HLOD в UE5 настраиваем через World Partition HLOD Layer. Согласно документации Unreal Engine, Nanite best practice требует отключать LOD для Nanite-мешей.

Cross-фейдинг вместо hard pop. Unity LOD Group поддерживает Cross Fade mode — дитеринг-переход между уровнями. Работает через Dither Fade шейдерное ключевое слово. На мобильных платформах дитеринг дешевле, чем кажется — Adreno хорошо его параллелит. Включаем для крупных объектов на переднем плане, оставляем instant-переход для мелкого пропса вдалеке.

Растительность — отдельная история. SpeedTree LOD интегрируется в Unity через отдельный pipeline. Главная ловушка — billboard LOD SpeedTree рендерится через отдельный BatchRendererGroup, и его нужно профилировать отдельно от основного Draw Call счётчика. Видели проекты, где 40% GPU time уходило на 2000 billboard-деревьев, которые казались «уже оптимизированными». Мы обучаем команду таким нюансам в рамках поддержки.

Как настроить LOD за 5 шагов?

  1. Профилирование GPU: откройте Profiler → GPU Usage и Frame Debugger с фильтром по Draw Calls. Определите, сколько объектов рендерится с избыточной детализацией.
  2. Анализ Overdraw: в Scene View включите Overdraw mode — найдите объекты с высоким overdraw без LOD.
  3. Классификация: разделите объекты на категории и для каждой установите количество уровней и пороговые дистанции по таблице ниже.
  4. Генерация LOD: используйте Simplygon или встроенный генератор. Для критичных мешей — ручная доработка.
  5. Тестирование на целевой платформе: проверьте отсутствие pop и прирост FPS.
Категория объектов Уровни Пороги (м) Тени
Персонажи LOD0, LOD1, LOD2 0–10, 10–25, 25–50 On до LOD1
Здания LOD0, LOD1, LOD2 0–30, 30–80, 80–200 On до LOD0
Пропсы (мелкие) LOD0, LOD1 + Culled 0–5, 5–15 Off на LOD1
Растительность (деревья) LOD0, LOD1, Billboard, Culled 0–15, 15–50, 50–150 Off на LOD2

Процесс работы над LOD

Аудит начинается с Profiler → GPU Usage и Frame Debugger. Смотрим, сколько объектов рендерится за пределами видимой детализации. После аудита готовим LOD-спецификацию: таблица с категориями объектов, количеством уровней, пороговыми дистанциями, политикой теней для каждого уровня. Это артефакт, который согласовываем с командой художников.

Реализация: либо настройка существующих LOD Group, либо создание LOD-ассетов (если их нет), либо автоматическая генерация с последующей ручной правкой критичных объектов.

После аудита мы выявили 450 объектов без LOD. Создали LOD-ассеты с 2–3 уровнями, применили cross-fade для зданий и instant для пропса. Результат: FPS вырос с 28 до 55 на Samsung Galaxy S10. Экономия Draw Calls составила 40%.

Что входит в работу

Deliverable Описание
LOD-спецификация Документ с порогами, уровнями и настройками теней для каждой категории
Настроенные LOD Group Все ассеты с правильной конфигурацией
Оптимизированные меши Сгенерированные или вручную доработанные LOD-копии
Рекомендации по баджену Инструкции для художников по подготовке исходников
Поддержка при внедрении Консультации на этапе интеграции и тестирования (1 месяц)
Масштаб задачи Ориентировочные сроки
Аудит LOD-настроек + отчёт 1–3 дня
Настройка LOD для одной сцены (до 200 типов объектов) 1–2 недели
Разработка LOD-политики + реализация для open-world 3–6 недель
Интеграция HLOD/Nanite в существующий проект 2–4 недели

Свяжитесь с нами для консультации — мы подготовим предложение под ваш проект. Наши инженеры имеют опыт настройки LOD для AAA-проектов и мобильных игр. Пишите, оценим задачу за 1–2 дня без обязательств.