Блум в Unreal Engine 4

0
164
Блум в Unreal Engine 4

Блум (Bloom) – это феномен реального мира, который может значительно увеличить воспринимаемый реализм визуализированного изображения при умеренной рентабельности рендеринга. Блум можно увидеть невооруженным глазом, глядя на очень яркие объекты, которые находятся на гораздо более темном фоне. Даже более яркие объекты также вызывают другие эффекты (полосы, вспышки объектива), но они не покрываются классическим эффектом блума. Поскольку наши дисплеи (ТВ, TFT и т.д.) обычно не поддерживают HDR (высокий динамический диапазон), мы не можем реально отображать очень яркие объекты. Вместо этого мы моделируем эффекты, которые происходят в глазу (рассеяние подповерхностной сетчатки), когда свет попадает на пленку (рассеяние пленки под поверхностью) или перед камерой (фильтр молочного стекла). Эффект не всегда может быть физически правильным, но он может помочь сделать относительную яркость объектов или добавить реализм к изображению LDR (низкий динамический диапазон), которое отображается на экране.bloom ue4

Bloom может быть реализован с одним размытием Gaussian. Для лучшего качества мы объединяем несколько эффектов размытия Gaussian с разным радиусом. Для лучшей производительности мы делаем очень большие размытия в гораздо более низком разрешении. В UE3 у нас было 3 гауссовских размытия в разрешении 1/4, 1/8 и 1/16. Теперь у нас есть несколько размытий с именем Blur1 до 5 в разрешении 1/2 (Blur1) до 1/32 (Blur5).

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

СвойствоОписание
IntensityМасштабирует цвет всего эффекта блум (линейный). Возможное использование: затухание или выключение с течением времени, затемнение.

 

bloom_intensity_0_small-ue40.0

 

значение bloom_intensity_1 ue41.0

 

значение bloom_intensity_5 ue45.0

ThresholdОпределяет, сколько единиц яркости должен иметь цвет, чтобы повлиять на блум. В дополнение к порогу (threshold) существует линейная часть (одна единица ширины), где цвет лишь частично влияет на цветение. Чтобы все цвета сцены вносили вклад в блум, необходимо использовать вольюм -1. Возможное использование: настройка для некоторого не реального контента HDR, последовательности сновидений.

 

значение bloom_threshold_0_ue40.0

 

значение bloom_threshold_10_ue410.0

#1/#2/#3/#4/#5 TintИзменяет яркость и цвет каждого блума. Использование черного цвета не сделает этот проход быстрее, но это можно сделать.
#1/#2/#3/#4/#5 SizeРазмер в процентах от ширины экрана. Зажимается некоторым количеством. Если вам нужно большее число, вместо этого используйте следующее размытие с более низким разрешением (большее число).

 

значение bloom_tint_1_ue4#1

 

значение bloom_tint_2_ue4#2

 

значение bloom_tint_3_ue4#3

 

значение bloom_tint_4_ue4#4

 

значение bloom_tint_5_ue4#5

 

Bloom Convolution

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

Convolution для блума включен ue4Convolution для блума: Включен

Convolution для блума выключен ue4Convolution для блума: Выключен

В этом примере техника блума создает континуум ответов от звездных всплесков до диффузных светящихся областей.

Ядро представляет отклик оптического устройства на один точечный источник в центре поля просмотра. Каждый пиксель в источнике вносит часть своей яркости соседям, как это предписано образом ядра. Чем ярче исходный пиксель, тем заметнее цветение (блум), которое он производит. Под капотом этот энергосберегающий разброс формулируется как операции свертки и ускоряется с помощью быстрого преобразования Фурье (Fast Fourier Transform – FFT).Convolution Bloom настройки ue4

Bloom Convolution предназначен для использования с внутриигровой или автономной кинематикой или на высококачественном оборудовании, в то время как Standard блум должен использоваться для большинства игровых приложений. Оценивая компромисс, стандартный блум имеет значительное преимущество в производительности, но он не является консервативным (это может привести к облучению изображения), и ему не хватает визуальной сложности Bloom Convolution.

Чтобы включить Bloom Convolution, перейдите в раздел Lens от Post Process Volume, а рядом с Method используйте поле выбора, чтобы выбрать Convolution.

СвойствоОписание
Convolution KernelИспользуйте это, чтобы выбрать текстуру, которая определяет ядро.

Дополнительные свойства

Convolution ScaleЭто указывает на относительный размер изображения Convolution Kernel в единицах окна просмотра, по умолчанию – это значение 1. В первую очередь используется для уменьшения размера блума.
Convolution CenterВ UV-координатах по умолчанию используется значение (1/2, 1/2). В идеальном случае изображение Convolution Kernel является идеально сосредоточенным ответом на более яркий источник, но обычно требуются небольшие настройки. Смещения здесь приведут к полному смещению изображения блума.
Convolution BoostУвеличивает интенсивность выбранных пикселей до применения фильтра свертывания блума. Это состоит из минимального значения, максимального значения и множителя. Дельта яркости выше минимального значения будет усилена множителем. По умолчанию этот импульс отключен и должен использоваться с осторожностью.
Convolution BufferНеявная область буфера как часть размера экрана, чтобы гарантировать, что блум не обтекает изображение. Увеличение этого значения оказывает неблагоприятное воздействие на производительность.

Наилучшие практики изображения Ядра

Дополнительный реализм, создаваемый сверткой на основе изображений, является результатом его способности использовать визуально интересные несимметричные изображения ядра. Создавая изображения ядра и настраивая их для использования с Bloom Convolution, есть несколько вещей, которые вы должны иметь в виду.

  • Изображение ядра должно полностью присутствовать на графическом процессоре и доступно с полным разрешением, иначе может использоваться версия ядра с низким разрешением и приведет к серьезному ухудшению качества. Для этого задайте следующие свойства в редакторе текстур для изображения ядра:
  • Bloom – это целый фильтр изображений, поэтому с Convolution Bloom самая горячая часть изображения должна быть значительно ярче, чем остальная часть изображения (формат .exr хорошо подходит для этого), в противном случае фильтр будет иметь сильный эффект размытия по экрану.
  • Система ожидает, что самая горячая точка будет находиться в центре изображения вашего ядра, однако это можно настроить с помощью элементов управления Convolution Center.
  • Хорошая структура ядра блума должна заполнить большую часть изображения ядра. Если вы посмотрите на изображение ядра по умолчанию в Photoshop, вы увидите, что радиальные линии, которые расходятся от центра, распространяются на значительное количество изображения.
Изображение ядра без изменения ue4Изображение ядра без измененияИзображение ядра изменено ue4Изображение ядра изменено для демонстрации
  • Большие изменения поведения Convolution должны быть выполнены путем изменения образа ядра с незначительными изменениями, выполненными с использованием свойств Bloom Convolution Advanced.

Bloom Dirt Mask

Эффект Bloom Dirt Mask использует текстуру, чтобы скрасить блум в некоторых определенных областях экрана. Это можно использовать для создания внешнего вида камеры, более впечатляющего эффекта HDR или несовершенства камеры.

Блум в Unreal Engine 4Dirt Mask включенаDirt Mask выключена ue4Dirt Mask выключена 

Чтобы включить Bloom Dirt Mask, перейдите в раздел Lens Вольюма пост-обработки и включите опцию Dirt Mask TextureИспользуйте раздел Texture, чтобы применить текстуру к вашей Dirt Mask.Dirt Mask свойства ue4

СвойствоОписание
Dirt Mask TextureИспользуйте поле выбора, чтобы назначить Texture2D для вашей Dirt Mask. Имейте в виду, что это свойство нельзя смешивать с другими вольюмами Post Process.
Dirt Mask IntensityМасштабирует цвет эффекта Dirt Mask блума (линейный). Это свойство используется для настройки яркости Dirt Mask.
Dirt Mask Tint ColorИспользуется для затемнения или цвета оттенка текстуры Dirt Mask. Это можно использовать для настройки яркости и цвета Dirt Mask.

Лучшая практика изображения Dirt Mask

Создавая текстуры Dirt Mask и настраивая их для использования с Bloom Dirt Mask, вы должны иметь в виду несколько вещей.

  • Текстура должна полностью присутствовать на графическом процессоре и доступна с полным разрешением. Чтобы сделать это, установите в редакторе текстур следующее свойство:
  • Это свойство Post Process нельзя смешивать с другими вольюмами Post Process на вашем уровне.
  • При построении текстуры Dirt Mask помните следующее:

Пример текстуры Dirt Mask ue4Пример текстуры Dirt Mask, используемой в игре с авто.

  • Рекомендуется использовать мощь размера двух изображений. Это позволяет избежать создания и потоковой передачи Mip, поэтому они должны устанавливаться автоматически, однако, если вы используете мощность двух текстурных размеров, вам нужно установить их в свойствах редактора текстур.
  • Вы можете использовать текстуру с низким разрешением, поскольку этого обычно достаточно, чтобы представлять грязь или царапины на камере, и они, вероятно, будут не в фокусе и размыты в любом случае. Если вы получаете артефакты сжатия, вы можете попробовать изображение с более высоким разрешением.
  • Вы можете создать текстуру с помощью Photoshop (или аналогичного программного обеспечения для редактирования изображений), используя Lens blur.
  • Используйте хроматическую аберрацию (цветную бахрому) в текстуре, чтобы улучшить внешний вид dirt mask.

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

 

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите свой комментарий!
Пожалуйста, введите ваше имя: