Объемные световые карты в Unreal Engine 4

0
18
Объемные световые карты в Unreal Engine 4
Volumetric Lightmaps (Объемные световые карты) далее заменяют Кэш косвенного освещения и Образцы объемного освещения. Volumetric Lightmap – это структура данных, в которой хранится разбросанная информация о volumetric lighting (объемном освещении).

Кэш косвенного освещения можно снова включить, открыв параметры World Settings > Lightmass Settings и установив метод Volume Lighting Method для VLM Sparse Volume Lighting Samples.

Lightmass генерирует световые карты поверхности для непрямого освещения статических объектов. Однако динамические объекты (например, персонажи) нуждаются также в способе получения непрямого освещения. Это достигается путем хранения предварительно вычисленного освещения во всех точках пространства с помощью Volumetric Lightmap во время сборки, а затем используется для интерполяции во время выполнения для непрямого освещения динамических объектов.

Объемные световые карты в Unreal Engine 4Sparse Volume Lighting Samples

(старый метод)

объемные световые карты ue4Volumetric Lightmaps

(новый метод)

Разбросанные образцы Volume Lighting определены количеством утечки и точностью освещения. Объемные световые карты улучшают это.

Как это работает

С высокого уровня система Volumetric Lightmaps работает следующим образом:

  • Lightmass размещает образцы освещения по всему уровню и вычисляет косвенное освещение для них во время сборки освещения.
  • Когда приходит время для создания динамического объекта, Volumetric Lightmap интерполируется на каждый пиксель затененным, обеспечивая предварительное вычисление косвенного освещения.
  • Если нет построенного освещения (это означает, что объект новый или слишком сильно переместился), освещение интерполируется на каждый пиксель из Volumetric Lightmap (объемной световой карты) для объектов Static до тех пор, пока освещение не будет восстановлено.

Когда размещен Lightmass Importance Volume, Volumetric Lightmap строит кирпичики, которые состоят из ячеек 4x4x4 (образцы освещения). Когда запускается lightmass, ячейки помещаются во весь Lightmass Importance Volume, а затем он использует больше ячеек вокруг статической геометрии в сцене для получения лучшего результата косвенного освещения.Volumetric Lightmap и куб ue4

Каждая из этих точек (или сфер) представляет собой образец освещения Volumetric Lightmap, который использует сферическую гармонику третьего порядка для хранения входящего освещения во всех направлениях.Volumetric Lightmap использует сферическую гармонику третьего порядка ue4

Рядом с объектами любая статическая геометрия, находящаяся внутри одного из кирпичиков, будет использовать больше ячеек, в которых больше всего изменяется косвенное освещение. Эта структура данных позволяет интерполировать косвенное освещение в любую точку пространства на графическом процессоре.

Lightmass Importance Volume и статическая геометрия ue4(Слева направо) Lightmass Importance Volume с одной статик мешью, помещенной внутри вольюма. Клетки вокруг статической геометрии имеют более высокую плотность; Примерное представление одной стороны кирпичика, показывающее размещение ячеек 4x4x4; Такое же примерное представление ячеек с более высокой плотностью, когда статическая геометрия присутствует во время сборки освещения.

Включение визуализации Volumetric Lightmap

Используйте режим просмотра для Volumetric Lightmap, чтобы визуализировать образцы освещения в окне просмотра уровня, нажав Show > Visualize > Volumetric Lightmap.

Включение режима просмотра Volumetric Lightmap ue4Включение режима просмотра Volumetric Lightmap

Визуализация образцов освещения Volumetric Lightmap ue4Визуализация образцов освещения Volumetric Lightmap 

При визуализации Volumetric Lightmap после сборки освещения вы можете увидеть плотность образцов освещения, которые собираются вокруг статической геометрии на основе ячеек в пределах Lightmass Importance Volume, на которые он влияет. Образцы освещения, удаленные от статической геометрии, менее плотные, так как у них нет какой-либо геометрии рядом с ними.

Sparse Volume Lighting Samples ue4Sparse Volume Lighting Samples

(старый метод)

Volumetric Lightmaps ue4

Volumetric Lightmaps

(новый метод)

 Indirect Lighting Cache только размещал образцы освещения над поверхностью статической геометрии. Volumetric Lightmap размещает образцы в больших плотностях вокруг статической геометрии для более подробной информации, когда косвенное освещение больше всего меняется.

Предварительный просмотр незавершенного освещения

Volumetric Lightmap позволяет просматривать объекты с незавершенным освещением. Когда вы перемещаете статик меш, у которой ранее было построено освещение, она автоматически переключается на Volumetric Lightmaps до следующего построения освещения.

Кэш косвенного освещения ue4Кэш косвенного освещения

(старый метод)

Volumetric Lightmap ue4Volumetric Lightmap

(новый метод)

Столбец в центре был скопирован и теперь освещен с помощью Volumetric Lightmap, пока не будет снова построено освещение. 

Предварительное вычисление Освещения на движущихся объектах

В отличие от Кэша косвенного освещения, где интерполяция между образцом освещения происходит один раз для всего компонента, Volumetric Lightmap позволяет более подробную интерполяцию для каждого пикселя. Это приводит к надежному распределению деталей, что приводит к меньшему количеству утечек света.

Кэш косвенного освещения ue4

Кэш косвенного освещения

(старый метод)

персонаж VLM ue4Volumetric Lightmap

(новый метод)

Добавленная деталь Volumetric Lightmaps лучше сочетает персонаж с окружающей средой.

объект и Кэш косвенного освещения ue4Кэш косвенного освещения

(старый метод)

объект и VLM ue4Volumetric Lightmap

(новый метод)

Для подвижных объектов, встроенных в любую статическую геометрию, теперь он обеспечивает лучшее соответствие для освещения статического объекта по сравнению с кэшем косвенного освещения.

Предварительное вычисление Освещения на Volumetric Fog

Volumetric Lightmaps поддерживают приложение статического освещения для оVolumetric fog, благодаря чему каждый туман вокселя интерполирует предварительно вычисленное освещение на свое место в пространстве.

Spot Light без Косвенного освещения ue4

Spot Light без Косвенного освещения

Spot Light с Косвенным освещением ue4Spot Light с Косвенным освещением

У Stationary Lights (стационарного освещения) есть свое косвенное освещение, хранящееся в световых картах, которые теперь влияют на туман.

Skylight Emissive Fog Color ue4Sky Light Emissive ColorSkylight VLM ue4Sky Light Volumetric Lightmap

Skylights затенены должным образом, что предотвращает затуманивание внутренних помещений.

Static и Emissive для Static Lighting ue4Кэш косвенного освещения:

Static и Emissive для Static Lighting

(старый метод)

VLM Static Lighting ue4

Volumetric Lightmap:

Static и Emissive для Static Lighting

(новый метод)

Static и Emissive для статического освещения влияют на туман, не затрачивая ничего, поскольку все они объединены в Volumetric Lightmap.

Настройки

Параметры Volumetric Lightmap можно получить из World Settings, расположенных в Lightmass Settings.Параметры Volumetric Lightmap ue4

НастройкаОписание
Volumetric Lighting MethodТехника, используемая для обеспечения предварительно вычисленного освещения на всех позициях в объеме Lightmass Importance Volume.

VLM Volumetric LightmapОбразцы освещения вычисляются в расширенной сетке, которая покрывает весь объем Lightmass Importance Volume. В геометрии используются сетки с более высокой плотностью. Volumetric Lightmap эффективно интерполируется на графическом процессоре на пиксель, позволяя точное косвенное освещение для динамических объектов и volumetric fog. Позиции за пределами Importance Volume повторно используют пограничные тексели Volumetric Lightmap (адресная привязка). На мобильных устройствах интерполяция выполняется на центральном процессоре в центре каждой границы объекта.
VLM Sparse Volume Lighting SamplesОбразцы Volume lighting размещаются поверх статических поверхностей со средней плотностью и везде в Lightsmass Importance Volume при низкой плотности. Позиции вне Importance Volume не будут иметь никакого косвенного освещения. Для этого метода требуется интерполяция процессора, поэтому для скрытия результатов для каждого динамического объекта используется Кеш косвенного освещения, добавляя расходы Rendering Thread. Этот объем не может влиять на volumetric fog.
Volumetric Lightmap Detail Cell SizeРазмер Volumetric  Lightmap с наибольшей плотностью (используется вокруг геометрии), в единицах мирового пространства. Этот параметр оказывает большое влияние на время сборки и память и должен использоваться с осторожностью.
Volumetric Lightmap Maximum Brick Memory MbМаксимальный объем памяти, который нужно потратить на данные Volumetric Lightmap Brick. Кирпичики с высокой плотностью будут отброшены до тех пор, пока этот предел не будет выполнен с использованием кирпичиков, наиболее удаленных от первой геометрии. Обрезка памяти слишком сильно приведет к несогласованному разрешению, и было бы лучше увеличить Volumetric Lightmap Detail Cell Size. 

Производительность 

При рассмотрении производительности и использования памяти с помощью Volumetric Lightmaps следует учитывать следующие соображения.

  • Volumetric Lightmaps на персонаже третьего лица занимает .02 мс времени GPU на PlayStation 4. Все покадровое отображение кэша косвенного освещения снимается.
  • В карте Monolith Epic’s Paragon  использование памяти увеличилось с 5 МБ с помощью кэша косвенного освещения до 30 МБ с Volumetric Lightmaps с настройками Detail Cell Size по умолчанию. Использование памяти можно увидеть в команде Stat Memory в редакторе с Volumetric Lightmap Memory.команда Stat Memory в VLM ue4

Volumetric Lightmap против Кэша косвенного освещения

Ниже приведены сведения о сравнении, которые могут быть сделаны между Кэшем косвенного освещения и Volumetric Lightmaps:

Предварительно вычисляемые Волюмы света / Кэш косвенного освещенияVolumetric Lightmaps
Дорогостоящая интерполяция на ЦПЭффективная интерполяция на ЦП
Интерполяция на объект, даже на образцовые компонентыИнтерполяция в пикселях
Не может повлиять на Volumetric FogРаботает с Volumetric Fog
Поставляется с высокой плотностью только поверх статических поверхностей, что приводит к утечке из образцов с низкой плотностьюПомещенный с высокой плотностью вокруг всех статических поверхностей
Черные образцы за пределами Lightmass Importance VolumeПограничные вокселы растягиваются для охвата областей за пределами объема Lightmass Importance Volume
Поддержка потоковой передачи уровня В настоящее время не поддерживается потоковая передача уровня

Дополнительные замечания

  • Если вы уменьшите Volumetric Lightmap Detail Cell Size на большом уровне, чтобы получить больше точности, вам также нужно увеличить Volumetric Lightmap Maximum Brick Memory Mb. В противном случае детализированные ячейки будут отобраны, что приведет к меньшей точности динамического объекта.

Исправление проблем

  • Detail Cell Size был уменьшен для большего количества образцов, но плотность образца ниже запрашиваемой около статической геометрии.
    • Детальные кирпичики можно отбирать, если Maximum Brick Memory слишком низкая, или если все освещение в области почти равно.
  • Существует свет, протекающий через стену на персонажах, но не на статик меша вблизости.
    • Единственные решения против утечки на данный момент – уменьшить Detail Cell Size (что позволяет увеличить объем памяти) или увеличить толщину стены.