Коротко
- Lightmap UV хранит данные запечённого света и теней; для проектов только с динамическим освещением он не нужен.
- Движок может автоматически создавать Lightmap UV при импорте; настройка находится в окне FBX Import Options.
- Острова Lightmap не должны перекрываться, между ними нужно оставить достаточно места; в документации обычно рекомендуется padding не менее четырёх texel.
- Для сложных и органических мешей пользовательская UV-развёртка может упростить контроль швов и утечки света.
При подготовке сцены с запечённым освещением в Unreal Engine статическим мешам нужен отдельный канал Lightmap UV для хранения данных о свете и тенях. В официальной документации Epic Games рекомендуется создавать этот канал автоматически либо вручную в инструменте редактирования UV. Рабочий процесс описан в общей документации Unreal Engine по lightmapping; пример настройки импорта FBX относится к Unreal Python 4.27, настройка Alembic — к версии 5.0, а инструменты для каналов UV статического меша — к версии 5.3.
Почему Lightmap UV нужен отдельный канал?
UV текстуры задаёт, как материал размещается на поверхностях. В этом UV можно использовать повторяющиеся или перекрывающиеся острова: например, наложить UV фасадных поверхностей, использующих одну и ту же текстуру, чтобы эффективнее расходовать пространство. У Lightmap UV другая задача: запечённые данные о свете и тенях должны записываться отдельно для каждой поверхности. Поэтому острова не должны перекрываться или накладываться друг на друга; между ними нужно оставить промежутки, ограничивающие утечку света и визуальные артефакты.
Lightmap нужны только в том случае, если статический меш будет освещаться запечённым, то есть заранее рассчитанным освещением. Если в проекте используется только динамический свет, подготавливать Lightmap UV для каждого меша необязательно. Если определить это в начале работы, можно избежать лишних этапов редактирования UV.
Когда достаточно автоматической генерации?
При импорте FBX проверьте настройку создания Lightmap UV в окне
FBX Import Options. Согласно официальной документации, Lightmap UV могут быть созданы во время импорта, если автоматическая генерация не отключена.Учтите, что для автоматической развёртки в качестве источника используется канал UV текстуры, после чего острова упаковываются заново. Цель — избежать наложения и повторного использования координат, оставив при этом промежутки, подходящие для целевого разрешения Lightmap.
Проверьте результат. Для многих статических мешей автоматическая генерация подходит и требует минимум ручной доработки, однако идеальный результат для каждой модели не гарантирован.
После создания Lightmap UV настройки можно изменить в разделе Build Settings панели Details в Static Mesh Editor в Unreal Engine. Эти инструменты позволяют создать новый Lightmap UV или повторно упаковать существующие острова. Параметры исходного и целевого каналов задают, из какого канала брать острова и в какой записывать. Автоматическая развёртка заново упаковывает острова, но не разрезает и не разбивает их в процессе. Если существующие острова модели не подходят, лучше отредактировать их в программе для моделирования или UV-редакторе до импорта.
Ручная развёртка, расположение островов и padding
Если автоматический результат недостаточен, разверните UV вручную в программе для моделирования или отдельном UV-редакторе. По возможности сохраняйте связанные поверхности в логичных непрерывных группах — это помогает получить плавные переходы освещения. Например, переднюю и боковые поверхности фасадного элемента можно объединить в один остров, а верхнюю поверхность разместить отдельно. Глубокие углубления и выемки могут стать подходящими границами для разделения островов UV.
В документации Epic отмечается, что из-за работы компрессии DXT с блоками 4×4 texel обычно нужен зазор не менее четырёх texel, чтобы избежать растекания света и теней. При ручной развёртке рассчитывайте зазоры с учётом целевого разрешения. Для примера с разрешением 64 в документации приводятся расчёт 1/62 после вычета одного пикселя с каждого края и значение примерно 0,0161290323. Автоматическая генерация может разместить подходящий padding самостоятельно.
| Настройка или параметр | Рекомендуемое значение | Эффект |
|---|---|---|
| Padding между островами UV | Обычно не менее 4 texel | Снижает риск растекания света и теней. |
| Интервал texel для примера с разрешением 64 | 1/62 ≈ 0,0161290323 | Пример расчёта с вычетом одного пикселя с каждого края. |
| Разрешение Lightmap | Минимальное достаточное значение | Позволяет учитывать бюджет памяти и оптимизацию производительности. |
У сложных моделей с множеством тонких элементов и пустот padding может занять значительную часть пространства UV. В таком случае может потребоваться более высокое разрешение Lightmap, но всё же следует выбирать минимальное разрешение, обеспечивающее нужное качество. Для органических форм полезно распрямить поверхность, настолько растянуть UV, насколько это необходимо, использовать естественные линии разреза и следить за непрерывностью освещения на видимых участках. Равномерный масштаб островов не всегда является главной целью: в документации отмечается, что развёртка с неодинаковым масштабом, занимающая больше пространства UV, может дать лучший результат освещения.
Применение в архитектуре и archviz
Для модулей фасадов, элементов интерьера и повторяющихся статических мешей автоматическая генерация может сэкономить время на начальном этапе, однако результат bake нужно проверить в репрезентативной сцене. Использование UV текстуры в качестве Lightmap UV может привести к проблемам, если острова текстуры перекрываются. Ручная развёртка обеспечивает больше контроля, особенно для сложных перил, поверхностей с углублениями и органических объектов. Более высокое разрешение Lightmap может уменьшить некоторые артефакты, но также следует учитывать его влияние на бюджет памяти. Документация не указывает конкретных требований к оборудованию или лицензированию, поэтому делать дополнительные предположения на этот счёт нельзя.
Процесс импорта может отличаться в зависимости от используемого формата файла и версии движка. В документации Unreal Python 4.27 для данных импорта статического меша FBX указано свойство generate_lightmap_u_vs. В экспериментальных настройках Alembic Unreal Python 5.0 также есть параметр generate_lightmap_u_vs. В Unreal Python 5.3 описаны функции добавления каналов UV статическим мешам и создания кубического, цилиндрического или планарного UV-мэппинга. Это документация для разных версий; следует отдельно проверить, доступны ли соответствующая настройка и функция в версии проекта.
Частые ошибки
Использовать UV текстуры как Lightmap UV, не проверив правила перекрытия.
Располагать острова слишком близко друг к другу, провоцируя утечку света или теней.
Предполагать, что автоматическая упаковка будет разбивать острова на сложных мешах: инструмент не разрезает существующие острова.
Устранять проблему за счёт чрезмерно высокого разрешения; сначала оцените расположение UV и минимальное достаточное разрешение.
Источники
Источников: 3Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.
Для архитектурных и визуализационных команд в Турции автоматическая генерация Lightmap UV может стать практичным способом сэкономить время на ручной упаковке, особенно в проектах с большим количеством статических объектов. Однако включение автоматического результата в рабочий процесс сдачи проекта без проверки повышает риск утечки света, особенно при перекрывающихся UV текстуры или сложной геометрии.
Более высокое разрешение может уменьшить артефакты, но его следует оценивать с учётом бюджета памяти; правильнее сначала исправить расположение островов и padding. Командам также стоит проверить, доступны ли параметры импорта и инструменты в используемой версии Unreal. В источниках нет особых требований к оборудованию или стоимости лицензий.
Частые вопросы
Нужен ли Lightmap UV для каждого статического меша в Unreal Engine?
Нет. Lightmap UV нужен для статических мешей, которые будут использовать запечённое освещение. Если в проекте используется только динамическое освещение, он не требуется.
Какой зазор нужно оставлять между островами Lightmap UV?
В документации Epic указано, что для предотвращения растекания света и теней обычно нужен padding не менее четырёх texel. Автоматическая генерация может разместить подходящий зазор.
Может ли Unreal Engine автоматически создавать Lightmap UV?
Да. Автоматическая генерация может выполняться при импорте FBX, если соответствующая настройка не отключена. Если результат недостаточен, UV можно подготовить вручную в программе для моделирования или UV-редакторе.



