Ми стикаємося з 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 кроків?
- Профілювання GPU: відкрийте Profiler → GPU Usage і Frame Debugger з фільтром по Draw Calls. Визначте, скільки об'єктів рендериться з надлишковою деталізацією.
- Аналіз Overdraw: в Scene View увімкніть Overdraw mode — знайдіть об'єкти з високим overdraw без LOD.
- Класифікація: розділіть об'єкти на категорії та для кожної встановіть кількість рівнів і порогові дистанції за таблицею нижче.
- Генерація LOD: використовуйте Simplygon або вбудований генератор. Для критичних мешів — ручне доопрацювання.
- Тестування на цільовій платформі: перевірте відсутність 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 дні без зобов'язань.






