LOD-кроссфейд: как не показывать игроку момент подмены
В прошлой статье мы договорились врать игроку с расстоянием. Но ложь раскрывается в момент переключения: дерево дёргается, гора «всплывает», силуэт на секунду меняется. Это pop-in — и от него лечатся кроссфейдом.
Что такое кроссфейд LOD
Движок не переключает модели скачком, а некоторое расстояние плавно смешивает их. В Unity ползунок Blend Distance в LOD Group: например, LOD0 активен до 30 метров, смешивание с LOD1 на 30–40, дальше чистый LOD1. В Unreal — аналогично, плюс режим dithered crossfade: пиксели случайным образом выбираются из одной или другой сетки, и граница размывается.
Визуальный эффект: силуэт на переходе «дрожит», но не прыгает. Для листвы, камней, травы — идеально. Для персонажа в упор — нет: дрожание заметно сильнее скачка.
Морфинг: вершины едут сами
Продвинутая версия — не смешивать, а перетекать. Если LOD0 и LOD1 построены с одинаковой топологией (та же сетка, только упрощённая без перестройки), GPU может интерполировать позиции вершин между уровнями. Модель плавно «сдувается» по мере удаления. В Blender это делается модификатором Remesh или Decimate с сохранением вершинного соответствия, в движке — шейдером морфинга или встроенными средствами (Unreal Nanite по сути делает это за нас, но это отдельная история).
Цена: LOD-пары должны быть «родственными», а не лепленными независимо. То есть ретопологию нижних уровней надо начинать от верхней сетки, а не от нуля.
Цены перехода
Кроссфейд не бесплатен, и платим мы тремя валютами:
- FPS. В зоне blend движок рендерит обе модели одновременно — двойная вершинная нагрузка. На массовых объектах (лес из 2000 деревьев) это ощутимо. Лечится узкой зоной blend: 5–10% от дистанции переключения, не больше.
- Память. Тот же двойник удваивает расход на время перехода. Плюс морфинг требует хранить соответствие вершин — дополнительные буферы.
- Художественная дисциплина. Родственная топология, совпадающие UV, одинаковые материалы. Зато pop-in уходит.
Практические пороги
- Дистанция blend = 10–15% от дистанции переключения. Больше — замучаетесь с просадками.
- Для hero-объектов (боссы, транспорт вплотную) — морфинг или вообще без кроссфейда, просто качественный LOD1.
- Для листвы и мелочи — dithered crossfade, дрожание под шум листвы не видно.
- Тени и reflection probes считаются по LOD0 отдельно: иначе кроссфейд на модели есть, а тень всё равно прыгает.
Когда не лечить вовсе
Pop-in незаметен, если объект мелкий, движение камеры быстрое, или сцена тёмная. Не тратьте бюджет на кроссфейд галстуков NPC в ночном клубе. Сначала покажите игру на слабом железе и спросите, видна ли подмена. Если да — лечите; если нет, значит, вы уже победили.
Комментарии (1)
Морфинг между LOD через 2 кадра спас мой болотный уровень. Проверено.
Форма для гостей комментариев пока не принимается — писать можно автору (expeot@outlook.com) или через владельца блога. Все записи выше настоящие, никто их не модерирует молча.