I LEARN PROBUILDER
Войти Начать курс
10/20

Действия над объектом

Lightmap UVs Развёртка под свет

Запечённый свет живёт не в основной развёртке, а во втором UV-канале. ProBuilder умеет строить его сам, но по умолчанию делает это не всегда — и именно поэтому у новичков «свет запёкся чёрным».

  • МенюTools ProBuilder Object Lightmap UVs
  • РежимObject
  • Клавишанет

Зачем нужен второй канал

UV1 — ваша текстура: там островки могут накладываться друг на друга, повторяться, выходить за пределы 0–1. Для текстуры это нормально.

UV2 — карта освещения: там каждый кусок поверхности обязан занимать своё уникальное место в квадрате 0–1, иначе свет от одного участка попадёт на другой.

UV1 — это ваша текстура. UV2 — служебная развёртка, по которой запекается свет.UV2 без запасаUV2 с Pack MarginМало запаса → свет с одного островка «протекает» на соседний: тёмные полосы и швы на стенах.Много запаса → место в лайтмапе тратится впустую и падает разрешение. Ищем середину.

Когда нажимать кнопку

Объект помечен как Contribute GI (Static), но в лайтмапе выглядит чёрным или пятнистым.

Вы изменили геометрию после последнего запекания.

Unity в консоли жалуется на отсутствие лайтмап-UV.

Есть настройка «Auto Lightmap UVs» — с ней ProBuilder генерирует канал при каждом изменении. Удобно, но на больших сценах заметно тормозит; тогда её выключают и жмут кнопку вручную перед запеканием.

Четыре параметра развёртки

Настройки живут на компоненте ProBuilderMesh в инспекторе, в разделе UV2. Их всего четыре, и понимать их стоит: именно они отвечают за швы и за расход места в лайтмапе.

Разбор внутренних меню

Каждое поле — что задаёт, какие значения принимает и на что влияет.

Параметры генерации UV2

Hard Angle
градусы, по умолчанию 88
Угол, при котором ребро считается жёстким и развёртка разрезается. Меньше значение — больше швов, но меньше искажений.
Pack Margin
по умолчанию ~4
Запас между островками в лайтмапе. Мало — свет «протекает» между кусками и появляются тёмные полосы. Много — впустую тратится разрешение.
Angle Error
% , по умолчанию ~8
Допустимое искажение углов при упаковке. Больше — плотнее упаковка, но кривее результат.
Area Error
% , по умолчанию ~15
Допустимое искажение площадей. Тот же компромисс между плотностью и точностью.

Связанные настройки Unity

Contribute GI (Static)
флаг объекта
Без него объект вообще не участвует в запекании.
Scale In Lightmap
число на Mesh Renderer
Сколько места объект получит в атласе света. Большая стена — увеличить, мелкий болтик — уменьшить.
Auto Lightmap UVs
настройка ProBuilder
Генерировать UV2 автоматически при каждом изменении меша.

Попробуйте сами

Пять минут в Unity — и инструмент перестанет быть кнопкой с непонятным названием.

  1. Постройте комнату, пометьте её как Contribute GI.
  2. Запеките свет — если появились чёрные пятна, вернитесь к объекту.
  3. Нажмите Lightmap UVs и запеките заново.
  4. Найдите в инспекторе ProBuilderMesh параметры UV2, увеличьте Pack Margin и посмотрите, как исчезли протечки между гранями.
  5. Поднимите Scale In Lightmap на большой стене — разрешение света на ней выросло.

Приёмы

  • Правило порядка: сначала вся геометрия, потом Lightmap UVs, потом запекание. Изменили форму — цикл повторяется.
  • Если сцена запекается вечность, посмотрите на Scale In Lightmap у крупных объектов: часто там стоит слишком большое значение.
  • Отключите Auto Lightmap UVs на этапе активного моделирования и включите обратно перед финальной сборкой.
  • Для VRChat-миров UV2 обязателен на всём, что статично. Без него весь запечённый свет пропадёт зря.

Грабли

  • Кнопка ничего не делает на объектах, которые не помечены как статические — свет по ним и не считается.
  • Слишком маленький Pack Margin — самая частая причина «грязных швов» на стенах после запекания.
  • Триангулированный меш разворачивается в UV2 хуже, чем меш из квадов. Ещё один довод отложить Triangulate на самый конец.
  • UV2 не редактируется в UV Editor: там его можно только посмотреть.

Проверка

Четыре вопроса. Неверный ответ попадёт в банк ошибок и вернётся к вам в разделе «Практика».

1. Чем UV2 отличается от UV1?

2. На стенах после запекания видны тёмные полосы по швам. Какой параметр править?

3. Что нужно объекту, чтобы вообще участвовать в запекании?

4. Когда правильно генерировать UV2?