Volumetric Fog в Unreal Engine 4

0
19
Volumetric Fog в Unreal Engine 4

С Unreal Engine, версия 4.16, теперь у нас есть поддержка Volumetric Fog (объемный туман). Этот метод вычисляет участвующую плотность и освещение в каждой точке усечения камеры, так что мы можем поддерживать различные плотности и любое количество освещения, влияющих на туман.

Volumetric Fog в Unreal Engine 4В этой сцене Volumetric Fog поступает от источника Направленного света с экрана через арку и окружающую область, чтобы создать затененный туман.

Регуляторы для Volumetric Fog

При установке и настройке Volumetric Fog вы можете управлять им по всему миру или локально в своей сцене. Глобальный контроль позволяет использовать компонент Exponential Height Fog (экспоненциальной высоты тумана) для управления туманом для всей сцены. Местные средства управления позволяют контролировать туман с помощью системы частиц в областях, где могут возникать частицы.

Глобальный контроль

Чтобы управлять Volumetric Fog, вы можете настроить свойства в вашем Exponential Height Fog и на каждом Light для управления суммой вклада Освещения.

Exponential Height Fog

Элементы управления для Volumetric Fog можно найти в компоненте Exponential Height Fog в разделе Volumetric FogЭкспоненциальное распределение по высоте обеспечивает глобальную плотность для Volumetric Fog.настройка Volumetric Fog ue4

СвойствоОписание
Scattering DistributionЭто определяет, насколько направленным является объемное рассеяние; значение 0, означает, что свет рассеивается одинаково во всех направлениях, а значение, близкое к 1, вызывает рассеяние, преимущественно в направлении света (вы должны смотреть на свет, чтобы увидеть его рассеяние).
AlbedoЭто общая отражательная способность участвующих медиа. Облака, густой туман и дымка, которые основаны на частицах воды, имеют альбедо, близкое к 1.
Extinction ScaleКонтролирует, сколько участвующих медиа блокирует свет.
View DistanceЭто расстояние от камеры, по которой будет вычисляться Volumetric Fog. В созданной вольюм текстуре для тумана имеется ограниченное количество Z срезов в зависимости от этого расстояния. Увеличение расстояния приведет к недостаточной выборке, которая может привести к появлению артефактов. Количество Z срезов можно отрегулировать, используя r.VolumetricFog.GridSizeZ, где более высокое качество, но будет более дорогостоящим.
Override Light Colors with Fog Inscattering ColorsКогда это включено, для определения цвета освещения с помощью Volumetric Fog используется Fog Inscattering Color, Directional Inscattering Color и Inscattering Texture.

Light

Размер вклада каждого света в сцену (и зависит от того, затеняет ли он туман) можно регулировать, настраивая следующие свойства на каждой панели Details света в разделе Light.настройка Volumetric Fog Light ue4

СвойствоОписание
Volumetric Scattering IntensityКонтролирует, насколько этот свет будет способствовать туману Volumetric Fog. Если установлено значение 0, вклада не будет.
Cast Volumetric ShadowВключает или отключает вольюм тень для света, способствующего Volumetric Fog. Когда включен теневой кастинг, Point и Spot Lights стоят примерно в три раза дороже, потому что они способствуют затенению вольюм текстур, где еще нет тени, когда подсветка без теневого освещения только способствует туману.
Volumetric Fog включен ue4Volumetric Scattering Intensity: 1

(по умолчанию)

Volumetric Fog выключен ue4Volumetric Scattering Intensity: 0

 

В этом примере вклад Spot Light в Volumetric Fog был отключен установкой Volumetric Scattering Intensity на 0.

Локальные элементы управления

Материалы, использующие домен Volume, описывают Albedo, Emissive и Extinction для данной точки пространства. Альбедо находится в диапазоне [0-1], а Emissive и Extinction – это плотность мирового пространства с любым значением, большим 0.элементы управления Volumetric Fog ue4

Это пример простейшего Volume Material для системы частиц.

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

Размещение единой системы частиц с материалом приводит к добавлению сферы плотности в Volumetric Fog. Эффект полностью трехмерный (3D) без задействованных билбордов.

сфера плотности в Volumetric Fog ue4

Следуя этому подходу, вы можете использовать несколько сферических частиц тумана с шумом от текстур, чтобы ограничить туман до определенной области вашей сцены.

локализованный эффект тумана ue4

В этой сцене частицы тумана заполнили эти низколежащие области, чтобы создать локализованный эффект тумана, который затеняется с помощью Voluemtric Fog.

Временное репроектирование

Объемные текстуры (вокселы), используемые Volumetric Fog, относительно низкого разрешения и выровнены с камерой усечения. Volumetric Fog использует сильный фильтр временного репроцессинга (репроектирования) с различным дрожанием суб-вокселей на кадр, чтобы совершить сглаживание. Как побочный эффект, быстро меняющийся свет, такие как фонарики и вспышки от дула, оставляют следы освещения. Чтобы отключить вклад этого света, установите Volumetric Scattering Intensity на 0.

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

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

Spot Light без отскока косвенного света ue4Spot Light без отскока косвенного светаSpot Light с отскоком косвенного света ue4

Spot Light с отскоком косвенного света

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

Sky Light со цветом Emissive Color ue4Sky Light со цветом Emissive ColorSkylightVLM UE4

Sky Light Volumetric Lightmap

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

Static и Emissive для Static Lighting ue4Кэш Косвенного Света:

Static и Emissive для Static Lighting

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

Volumetric Lightmap Static Lighting ue4Volumetric Lightmap:

Static и Emissive для Static Lighting

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

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

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

Стоимость GPU Volumetric Fog в основном контролируется разрешением вольюм текстуры, которое устанавливается на уровне тени для Engine Scalability. Volumetric Fog стоит 1 миллисекунду на PlayStation 4 при настройках High и 3 миллисекунды на NVIDIA 970 GTX на Epic – настройках, который оперирует воксели в восемь раз больше по времени.

  • Частицы, использующие домен Volume, могут добавить значительную стоимость графического процессора, в зависимости от их трехмерного превышения и количества команд. Используйте консольную команду profilegpu для проверки этой стоимости.
  • Point и Spot Lights с включенным Cast Volumetric Shadow стоили примерно в три раза больше, чем незатененные Point and Spot Lights.

Поддерживаемые функции

Этот список содержит поддерживаемые в настоящее время функции Volumetric Fog:

  • Один направленный свет с затенением из каскадных карт теней или статическим теневым эффектом с функцией освещения.
  • Любое количество Point и Spot Lights, с динамическим или статическим затенением (если включена функция Cast Volumetric Shadowing).
  • Затенение  Stationary Sky Lights.
  • Предварительное вычисление через Volumetric Lightmaps (Прямое освещение Static Lights, Indirect Lighting от Stationary Lights).
  • Один Skylight с затенением из Distance Field Ambient Occlusion (если включено).
  • Particle Lights (если Volumetric Scattering Intensity больше 0).

Кроме того, прозрачность должным образом влияет на Volumetric Fog, в зависимости от его положения в сцене. По умолчанию полупрозрачность вычисляет туман в вершинах, поэтому водяные плоскости с низкой тесселяцией могут вводить артефакты. Эти материалы могут быть настроены так, чтобы вычислять затухание на пиксель, чтобы решить эту проблему с помощью параметра Compute Fog Per-Pixel в разделе Material Details.

Известные трудности

Следующие функции пока не поддерживаются при использовании Volumetric Fog:

  • Профили IES и функций света на Point и Spot Lights.
  • Затенение от Ray Traced Distance Field Shadows.
  • Затенение от Volumetric Fog (само по себе).
  • Радиус Источника на Point и Spot Lights.
  • Некоторые настройки в Exponential Height Fog, такие как Fog Cutoff Distance (расстояние отсечки тумана), Start Distance (начальное расстояние) и Fog Max Opacity (максимальная непрозрачность тумана).

Общие вопросы

Ниже приведены некоторые распространенные вопросы или проблемы, которые могут возникнуть при использовании Volumetric Fog.

  • Как можно добиться более сильных световых валов без тяжелого глобального тумана?
    • Когда глобальная плотность тумана увеличивается, вы получаете более плотный туман, поэтому вы видите только светлые валы (тени света), если туман достаточно плотный, чтобы все сильно затуманилось. Есть два способа добиться более сильных световых валов без сильного тумана:
      1. Держите глобальную плотность тумана низкой, но используйте более высокую Volumetric Scattering Intensity для Направленного света. Кроме того, отрегулируйте Scattering Distritbution до почти 0,9 в вашем Актере Exponential Height Fog.
      2. Держите глобальную плотность тумана низкой, но увеличивайте ее в определенных областях с Вольюм частицами.
  • Можно ли одновременно использовать Exponential Height Fog и Volumetric Fog?
    • В это время Volumetric Fog заменяет Fog Inscattering Color в пределах Volumetric Fog View Distance. Поскольку Volumetric Fog физически основан, а Exponetial Fog – нет, невозможно смешать две системы на расстоянии, чтобы они точно соответствовали друг другу. Это также означает, что некоторые параметры в компоненте Exponential Height Fog не будут влиять на Volumetric Fog.
  • Можно ли отсоединить центр Volumetric Fog от камеры? Это было бы идеально для игр сверху вниз …
    • На данный момент нет, однако в настоящее время автономный вольюм не идеален для этого. Однако трудно интегрировать их с прозрачностью.

Учебные стримы