Блок 3. «Эксплейнер»
Данный проект является учебной работой студента Школы дизайна или исследовательской работой преподавателя Школы дизайна. Данный проект не является коммерческим и служит образовательным целям

Особенности и настройки динамического света

«Lumen — это динамическая система глобального освещения (Global Illumination) и отражений (Reflections) в Unreal Engine. Lumen обеспечивает вычисление диффузного глобального освещения с неограниченным количеством переотражений», а также расчёт непрямых отражений даже в очень больших и детализированных сценах — от мелких объектов до обширных пространств. В новых проектах функции Lumen Global Illumination и Lumen Reflections, а также связанные инструменты, такие как Generate Mesh Distance Fields, активируются автоматически, однако при переносе проектов с Unreal Engine 4 на Unreal Engine 5 эти параметры не включаются автоматически.

© Ершов Т. А. Возможности технологии динамического глобального освещения Lumen в Unreal Engine 5 // StudNet. — 2021. — № 8]

Исходный размер 1152x678

Параметры настройки динамического света

Lumen активируется в Настройках проекта (Project Settings) в разделах: • Rendering > Dynamic Global Illumination (Рендеринг > Динамическое глобальное освещение) • Rendering > Reflections (Рендеринг > Отражения)

Lumen Global Illumination заменяет собой Screen Space Global Illumination (SSGI) и Distance Field Ambient Occlusion (DFAO). Lumen Reflections заменяют Screen Space Reflections. Все настройки, относящиеся к Lumen или влияющие на него, находятся в разделе Engine > Rendering. В Настройках проекта содержатся все параметры Lumen по умолчанию для данного проекта.

Исходный размер 1152x648

Запеченный свет на CPU

Свет задается типом Movable (подвижный), чтобы он динамически мог менять освещение.

Исходный размер 815x275

Установка всех источников света на mobility «movable»

В Post Process Volume параметры Global Illumination и Reflections должны быть включены для Lumen.

Настройка Post Process Volume

По умолчанию текстуры и материалы могут выглядеть немного размытыми в отражённых поверхностях. Чтобы это исправить, подключите hardware ray tracing в настройках Lumen и повысьте качество отражений. По умолчанию параметр качества отражения установлен на 1. В этом режиме Lumen берет информацию о материале и освещении из кэша поверхности, и отражения выглядят как в Lumen Scene. Если после переноса меша в сцену он не отображается в режиме визуализации SDF, измените показатель Distance Field Resolution Scale. Меш появится и Lumen начнёт его учитывать. Если в сцене есть окна или дверные проёмы, можете частично заблокировать их, тогда отражение света от препятствия осветит интерьер. Если вам нужно снизить шум в сцене, воспользуйтесь настройкой Final Gather Quality в Post Process Volume. Она улучшит качество глобального освещения и снизит шум, но нагрузка на GPU увеличится. В Post Process Volume откройте раздел Global Illumination и попробуйте поменять настройку Final Gather Quality. Подберите значение, которое подойдёт для вашей сцены. Лучи для ближайших мешей рассчитываются с помощью Mesh Distance Field, а для дальних — Global Distance Field.

Особенности и настройки запеченного света

Исходный размер 1152x648

Включение плагина GPU Lightmass

Если вы собираетесь запекать свет на GPU, то откройте Plugins в свертке Editor > Plugins. Активируйте GPU Lightmass. Для запекания на CPU этот пункт не нужен.

Откройте Project Settings в свертке Editor > Project Settings и активируйте следующие параметры: • Ray Tracing > Use Hardware Ray Tracing • Virtual Textures > Enable Virtual Texture Support • Virtual Textures > Enable Virtual Texture Lightmaps • Dynamic Global Illumination Method > None

0

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

Выберите Post Process Volume в вашей сцене и поставьте Global Illumination и Reflections методы на None. UE5 предупредит вас о незапеченном свете, высветив предупреждение «lighting needs to rebuild» в левом верхнем углу.

Исходный размер 1087x1297

Настройка Post Process Volume

Для того, чтобы запечь свет в lightmaps, необходимо перевести все источники света в Static или же Stationary мод. Static является более оптимизированным вариантом, но Stationary позволяет менять ползунки цвета и яркости без необходимости перезапекания сцены. Впрочем, важно помнить, что крутить можно лишь эти два параметра. Изменение других, таких как, например, радиус, приведет к необходимости заново запечь уровень. После изменения мобильности источники света начнут отбрасывать надпись «Preview»

Lightmaps

Lightmap — это текстура, которая хранит информацию о том, как свет падает на поверхность объекта. Она позволяет заранее вычислить и сохранить информацию о свете, что значительно ускоряет рендеринг сцены в реальном времени. Это особенно важно для игр и интерактивных приложений, где производительность играет ключевую роль.

Отображение доступных UV-каналов для выбранного меша

Основные требования к lightmap : • На развёртке не должно быть оверлапов. • Она не должна выходить за пределы первого UDIM. • Разрешения lightmap должно быть достаточно для покрытия необходимого текселя, чтобы свет запекался качественно.

Исходный размер 724x724

Включение автоматической генерации lightmap для выбранного меша

В большинстве случаев lightmap рассчитывается с помощью инструментов Unreal Engine. По умолчанию, при импорте меша UE вычисляет его для объекта. Однако это происходит не всегда, так как по разным причинам его опция расчёта может быть отключена. Это оправдано, если меш поставляется с уже готовым lightmap.

Исходный размер 1152x622

Выбор UV-канала, который будет использоваться для построения lightmap

Как упоминалось выше, UE может автоматически рассчитать lightmap. Он формируется на основе одного из UV-каналов меша. Для генерации lightmap у нас есть несколько опций.

UV-каналы

Как видно на изображении выше, у движка есть 2 UV-канала. На самом деле, этот меш пришел с одним UV-каналом, а второй канал был создан автоматически UE. В нулевом канале UV-развёртка сделана для тайлинга. В ней много оверлапов, и она выходит за пределы UDIM. Такие параметры не подходят для создания lightmap. В то же время в первом канале lightmap структурирован согласно требованиям — без оверлапов и без выхода за пределы UDIM.

Исходный размер 1152x1111

Отсутствие Lightmap

Доступные опции для генерации lightmap: • Source Lightmap Index — указывает, из какого UV-канала движок берёт развёртку для генерации lightmap. В этом примере это нулевой канал. • Destination Lightmap Index — указывает, в какой UV-канал будет сгенерирована развёртка для lightmap. В данном случае это первый канал. • Min Lightmap Resolution — важный параметр, необходимый для создания минимального размера текселя. Максимальное значение в движке — 2048. По сути, чем выше это значение, тем выше плотность текселей у lightmap.

Мы можем столкнуться со сценарием, когда после генерации lightmap не появляется в UDIM (см. изображение выше)

Глава:
1
2
3
4
5
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше