LOD: искусство врать игроку всё более нагло с расстоянием

21 июл 2026 · 6 мин · 💬 1

LOD, level of detail — одна и та же модель в нескольких версиях с убывающей детализацией. Движок переключает их по размеру объекта на экране. По сути это санкционированное мошенничество: игрок соглашается на вранье в обмен на стабильные 60 кадров.

Почему по размеру экрана, а не по расстоянию

Расстояние — плохой советчик: гигантское дерево в 200 метрах занимает пол-экрана, а стул в пяти метрах за спиной игрока — ноль. Правильный критерий — screen size, доля высоты экрана. Unreal так и настраивает пороги: LOD0 до 1.0–0.5, LOD1 до 0.25, LOD2 до 0.1, дальше — LOD3 на 5–10% исходных треугольников или вообще impostor (2D-спрайт, рендер модели с фиксированных ракурсов).

Степени наглости

Типовой бюджет: LOD1 — 40–60% треугольников LOD0, LOD2 — 15–30%, LOD3 — 5–10%. Но проценты вторичны. Первичен силуэт: LOD обязан сохранять узнаваемый контур. Дерево без веточек-«волосков» — нормально; дерево с другим очертанием кроны — провал.

Что удаляется первым: 1. Невидимое изнутри: задние стороны предметов, внутренности колонн, обратные стороны пластин. 2. Мелкие элементы: гвозди, скобы, одиночные ветки, торчащие на пару пикселей. 3. Детали, «съеденные» normal map: если рельеф уже в текстуре, геометрию можно смело упрощать до коробки.

Как делать в Blender

Быстрый путь для пропсов: модификатор Decimate (Collapse) с фактором 0.5, применить, проверить силуэт, повторить для следующего уровня. Для hero-объектов — только ручная ретопология: decimate съедает UV и порождает треугольники-иголки. Не забудьте перед decimate сохранить UV-развёртку целой (границы островов) и проверить, что количество material slots одинаково на всех LOD — движок не переварит разнобой.

Именование: SM_Chair_LOD0, SM_Chair_LOD1... В Unreal LODGroup подхватит по суффиксу, в Unity — через LOD Group компонент, куда уровни вставляются вручную с ползунками переходов.

Где ложь вскрывается

Три классических прокола:

  • Pop-in — заметное «прыгание» при переключении. Лечится либо смягчением перехода (dithered/hi-z LOD в Unreal), либо тем, что LOD1 делается качественнее.
  • Короткие дистанции. Гоночная игра, где машина всегда близко: LOD0 и LOD1 почти сливаются, а LOD2 игрок успевает увидеть в зеркале заднего вида. Считайте порога от реальной камеры, а не от универсальных таблиц.
  • Движущиеся объекты. Лошадь скачет в десяти метрах от камеры — ей нужен LOD0 дольше, чем стене.

Хороший LOD-чан не замечаем мы с вами — только просадки FPS, которых не случилось.

Комментарии (1)

Форма для гостей комментариев пока не принимается — писать можно автору (expeot@outlook.com) или через владельца блога. Все записи выше настоящие, никто их не модерирует молча.