Метод Кинематографического Depth of Field в Unreal Engine 4

0
3
Метод Кинематографического Depth of Field в Unreal Engine 4
Следующие методы depth of field обеспечивают кинематографический вид, который очень похож на фотографию и пленку для настольных и консольных платформ с использованием средства рендеринга Deferred Shading и Clustered Forward.

Кинематографический метод

Этот метод depth of field заменяет Circle DOF как кинематический метод по умолчанию, используемый в Unreal Engine 4, версия 4.20. Он включен по умолчанию на поддерживаемом оборудовании.
Кинематографический DOF тесно связан с камерами реального мира, так же как и Circle и Bokeh DOF, вы можете увидеть круглые формы Bokeh с резким высоким динамическим диапазоном (HDR). Этот метод использует процедурное моделирование Bokeh, которое обеспечивает стабильность динамического разрешения и поддержку альфа-канала, будучи более быстрым, масштабируемым и оптимизированным для проектов, разрабатываемых на настольных компьютерах и консолях.
Depth of Field выключен UE4

Depth of field выключен

Depth of Field включен UE4

Depth of field включен

Фокусировка на предмете съемки

Ключом к достижению эстетически приятного эффекта depth of field является то, как фокусируется предмет (ы) выстрела. Существует три основных фактора, влияющих на настройку depth of field для любого заданного кадра:

  • Определите Focal Length (фокусное расстояние) объектива.
  • Выберите подходящую Aperture (диафрагму) (число f-stop).
  • Выберите Расстояние до предмета(ов) от камеры.

Давайте разберем элементы, которые составляют камеру и сцену, чтобы понять, что происходит, когда мы настраиваем эти опции:Фокусировка на предмете выстрела UE4

  1. Точки в сцене
    1. Красный: вне фокуса
    2. Синий: идеально в фокусе
    3. Зеленый: косвенно в фокусе
  2. Расстояние фокусировки до предмета выстрела (1.ii)
  3. Объектив Камеры
  4. Диафрагма объектива (измеренная в F-Stop)
  5. Фокусное расстояние объектива
  6. Фильмбек / Датчик изображения
  7. Конечный результат изображения
Обратите внимание, что отображаемое изображение справа инвертируется через объектив камеры. Красный является частью фона и больше не в фокусе, зеленый цвет является частью основного плана и незначительно не в фокусе.

Здесь мы имеем несколько точек (1), представляющих объекты, захваченные камерой, на определенное расстояние фокусировки (Focus Distance) (2), в данном случае голубое. Апертура (4) определяет, как размытые объекты на переднем плане и в фоновом режиме будут не в фокусе, и, наконец, фокусное расстояние (Focal Length) (5) объектива управляет полем обзора или как будет увеличено изображение.

Апертура

Апертура определяет, насколько резкие или размытые передний план и фон основаны на диаметре Диафрагмы,  которая контролируется в режиме f-stop.

  1. Объектив камеры
  2. Апертура диафрагмы объектива, измеренная в F-stopАпертура в depth of field UE4

На этой диаграмме показана диафрагма (2), блокирующая свет, проходящий через объектив (1). Размер Апертуры (или число f-stop) устанавливает, сколько света проходит через объектив, в свою очередь, контролируя, насколько размыты передний и задний фон в зависимости от расстояния фокусировки кадра.

Есть два элемента, которые составляют Апертуру: число F-stop и Диафрагма.Составные Апертуры в depth of field UE4

  1. Апертура – это диаметр отверстия, через которое проходит свет. Апертура определяется фокусным расстоянием, деленным на число F-stop.
  2. Диафрагма – это механическая структура, состоящая из нескольких лезвий, используемых для блокировки света. Он открывается и закрывается на основе поставляемого числа F-stop.

Апертура линзы определяется диаметром диафрагмы, которая уменьшается с увеличением числа F-stop, контролируя, насколько мелкий или широкий эффект depth of field. См. Расстояние фокусировки для диаграммы, показывающей этот эффект.

Чтобы продемонстрировать, как работает Апертура, перетащите ползунок, чтобы изменить число F-stop между 1.4, 2.8 и 5.6. Меньшие номера F-stop создают меньшую depth of field с большим фоном и размытием переднего плана. Большие числа F-stop увеличивают глубину DOF с меньшим размытием. Обратите внимание, что здесь изменяется только F-stop, расстояние фокусировки и фокусное расстояние остаются постоянными на 7м и 75 мм соответственно.

Camera Element_Aperture_1_4 eu4
Camera Element_Aperture_2_8 ue4
Camera Element_Aperture_5_6 ue4
Обычно, когда вы настраиваете опции Апертуры реальной камеры, вам также нужно будет одновременно отрегулировать настройки экспозиции, чтобы поддерживать ту же самую интенсивность света, получаемую датчиком пленки / изображения. Однако в UE4 это не настоящая камера, поэтому настройка F-stop и Diaphragm не регулирует интенсивность света.

Фокусное расстояние

Фокусное расстояние (Focal Length) – это расстояние от центра объектива до Filmback (или датчика изображения), измеренного в миллиметрах (мм). Фокусное расстояние объектива вашего изображения: если filmback увеличивается, поле зрения (FOV) будет расти вместе с ним. Если бы вы уменьшили фокусное расстояние, FOV также увеличилось бы.Фокусное расстояние в depth of field UE4

  1. Объектив камеры
  2. Фокусное расстояние

Чтобы продемонстрировать, как это работает, перетащите ползунок, чтобы изменить фокусное расстояние объектива между 50 мм, 75 мм и 100 мм. Обратите внимание, насколько эффективно он изменяет поле обзора (FOV) выстрела; при увеличении фокусного расстояния FOV уменьшается. Вы можете думать, что фокусное расстояние похоже на масштабирование, за исключением того, что вы также увеличиваете область вне фокуса снимка, увеличивая размытие передних и задних областей изображения. Обратите внимание, что здесь изменяется только Фокусное расстояние, Расстояние фокусировки и F-stop остаются постоянными на 7м. и f/2.8 соответственно.

Camera Elements_FocalLength_50mm ue4
Camera Elements_FocalLength_75mm ue4
Camera Elements_FocalLength_100mm ue4

Расстояние фокусировки

Расстояние фокусировки (Focus Distance) – это расстояние от центра объектива камеры до объекта съемки, который фокусируется, создавая фокальную плоскость. Чем ближе камера к объекту, тем больше фон окажется вне фокуса.Расстояние фокусировки в depth of field UE4

  1. Фокусные точки в сцене
    1. Красный: вне фокуса
    2. Синий: идеально в фокусе
    3. Зеленый: косвенно в фокусе
  2. Расстояние фокусировки до объекта (1b)
  3. Объектив камеры

Эта диаграмма демонстрирует различные объекты сцены (1), которые составляют сцену; фон, тема (ы) и передний план. Расстояние от объектива (3) до фокусного объекта (3) – в этом случае синяя точка – это расстояние фокусировки. Области на заднем плане и переднем плане размыты в зависимости от используемого F-stop и фокусного расстояния камеры.

Мы можем визуализировать слои DOF, используя раскрывающееся меню Show в окне Viewport, чтобы выбрать Advanced > Depth of Field Layers. В этом случае Зеленый представляет объекты переднего плана, Черный – это область, где объекты сфокусированы, а Синий – часть фона.

Depth Of Field Воспроизведение Сцены UE4Воспроизведение СценыВизуализация слоев Depth of Field UE4Визуализация слоев Depth of Field

Чтобы продемонстрировать, как это работает, перетащите ползунок, чтобы изменить расстояние фокусировки между 4 м, 7 м и 10 м. Регулировка расстояния фокусировки регулирует фокусную плоскость (фиолетовая пунктирная линия) в сцене, указывая, где находится область фокусировки кадра. Синяя контрольная точка на диаграмме здесь использует Персонаж как основной объект. В качестве фокуса фотокамеры и диаграммы объекты на переднем плане и в фоновом режиме тоже сдвинутся. Начиная с 4 м, полицейский автомобиль на переднем плане находится в центре внимания, и персонаж не в фокусе в фоновом режиме. Синяя ссылка на диаграмме указывает на это с ее пересечением фокальной точки перед обратным захватом. На 7 м персонаж полностью сосредоточен, а фоновые и передние объекты не в фокусе. В 10 м строительные барьеры находятся в центре внимания, а персонаж и полицейский автомобиль находятся вне фокуса на переднем плане. Синяя ссылка на диаграмме указывает на это, поскольку точка пересечения выходит за пределы фильма. 

При всех изменениях фокусного расстояния эффект DOF увеличивается или уменьшается в зависимости от объекта, находящегося на переднем плане или фона. Обратите внимание, что здесь изменяется Фокусное расстояние, а F-stop и Фокусное расстояние остаются постоянными при f/1,4 и 75 мм, соответственно.

Focus Distance_4m ue4
Focus Distance_7m ue4
Focus Distance_10m ue4

Моделирование процедурной диафрагмы

Задача Depth of Field – применить основное внимание к предмету (темам) в вашей сцене. Столь же важно, что области, которые не в фокусе, могут быть столь же нужными. Depth of Field в Unreal Engine 4 имитирует диафрагму объектива, позволяя вам эстетически управлять формой Bokeh (вне зоны фокусировки), регулируя число и кривизну диафрагменных лезвий.Метод Кинематографического Depth of Field в Unreal Engine 4

По соображениям производительности моделирование диафрагмы поддерживается только в настройках масштабирования движка  Epic и Cinematic. Более низкие настройки качества возвращаются к круглым формам Bokeh равной площади, чтобы обеспечить аналогичное поведение с функциями автоматической экспозиции, в свою очередь, отключение моделирования лезвия диафрагмы.

Количество диафрагменных лезвий

Диафрагма (или Iris – радужная оболочка) – это механизм, состоящий из лезвий, которые могут приспосабливаться к эстетическому восприятию формы Боке. Использование меньшего числа лезвий приведет к появлению многоугольной диафрагмы, тогда как большее количество лезвий улучшит кривизну диафрагмы, чтобы выглядеть более естественной с закругленным вне фокуса Боке.

Blades_4 ue4
Blades_5 ue4
Blades_8 ue4
Blades_16 ue4
Количество лезвий диафрагмы напрямую влияет на форму Боке, когда увеличена максимальная апертура (а минимальное количество F-stop уменьшается).
4 Увеличение диафрагмы ue4
5 Увеличение диафрагмы ue4
8 Увеличение диафрагмы ue4
16 Увеличение диафрагмы ue4

Апертура и Max Aperture

Апертура – это отверстие объектива, управляемое диаметром Диафрагмы, которое измеряется в F-stops. Количество света, пропускаемого через объектив, контролируется размером апертуры. Регулировка размера диафрагмы устанавливает фокальную плоскость для настройки того, как в фокусе или вне фокуса, за пределами фокальной области.

На следующей диаграмме показана корреляция между размером апертуры (число f-stop), максимальной апертурой (число min f-stop) и эффектом depth of field.

Большая диафрагма (нижнее число f-stop) имеет неглубокую фокальную область, в размер апертуры в depth of field UE4результате чего передний план и фон становятся более неактивными. Небольшая апертура (более высокое значение f-stop) имеет более широкую фокальную область, которая включает больше объектов в фокусе на переднем плане и на заднем плане.

Aperture Stop_1 ue4
Aperture Stop_2 ue4
Aperture Stop_2_8 ue4
Aperture Stop_4 ue4
Aperture Stop_5_6 ue4
Aperture Stop_8 ue4

Значения Апертуры f-stop: 1.4, 2.0, 2.8, 4.0, 5.6, 8.0

Хотя Aperture может быть как можно меньше, она может быть только размером с максимальный размер объектива. Максимальная диафрагма (Maximum Aperture) (измеренная в f-stop) определяет, насколько большой может быть объектив. Это также определяет кривизну лезвий, которые составляют диафрагму, ограничивая размер, который может открывать апертура; ограничение размера апертуры сокращает эффективную фокальную область, которая ограничивает возможности областей вне фокуса.

Max Aperture и Bokeh_1_4 ue4
MaxAperture и Bokeh_2_0 ue4
MaxAperture и Bokeh_2_8 ue4
MaxAperture и Bokeh_4_0 ue4

5 лезвий диафрагмы с различными значениями максимальной диафрагмы.

В этом примере число лезвий Диафрагмы (Number of Diaphragm Blades) установлено на 5. При меньшей диафрагме лезвия диафрагмы становятся более заметными в формах Боке. Используя большую диафрагму (f-stop = минимальная f-stop), формы Боке начинают становиться круговыми.

В этом примере актер Cine Camera используется со следующими значениями:

  • Min F-Stop: 1.4
  • Max F-Stop: 4.0
  • Diaphragm Blade Count (Количество лезвий диафрагмы): 5
  • Current Aperture (Текущая апертура): 1,4 – 4,0

С этими значениями F-stop может принимать только значения от 1,4 до 4,0Поскольку эффект depth of field расширяется с большей F-stop (меньшая апертура), диафрагменные лезвия становятся более заметными в формах Боке.

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

Настройки кинематографического DOF

Кинематографическая камера

Следующие настройки относятся к Актеру кинематографической камеры. Обратите внимание, что у вас есть доступ к настройкам Камеры и Depth of Field.

СвойствоОписание
 

Настройки Камеры

Sensor Width (Ширина датчика)Устанавливает горизонтальный размер пленки или цифрового датчика (измеряется в миллиметрах (мм)).
Настройки объектива
Min Focal Length (Минимальное фокусное расстояние)Устанавливает минимальное фокусное расстояние для объектива (измеряется в миллиметрах (мм)).
Max Focal Length (Максимальное фокусное расстояние)Устанавливает максимальное фокусное расстояние для объектива (измеряется в миллиметрах (мм)).
Min FStopМаксимальная диафрагма для этого объектива. Например, 2.8 для объектива f/2.8. Это также определит кривизну лопастей диафрагмы.
Max FStopМинимальная апертура для этой линзы. Например, 8.0 для объектива f/8.0.
Diaphragm Blade Count (Количество лезвий диафрагмы)Количество лезвий, составляющих механизм диафрагмы.
Настройки фокуса
Focus Method (Метод фокусировки)Выбирает тип метода фокусировки для управления фокусировкой камеры: None, Manual или Tracking.
Manual Focus Distance (Ручная фокусировка)Установите заданное вручную расстояние фокусировки. Это доступно, только если для параметра Focus Method установлено значение Manual.
Draw Debug Focus Plane (Рисование плоскости отладки)Разрешает рисовать полупрозрачную плоскость с текущей глубиной фокуса. Это позволяет визуально отслеживать, где находится фокус для съемки.
Debug Focus Plane Color (Цвет плоскости отладки)Устанавливает цвет для Draw Debug Focus Plane, когда он включен.
Smooth Focus Changes (Плавные изменения фокуса)Включите этот параметр, чтобы использовать интерполяцию, чтобы сгладить изменения расстояния фокусировки. При отключении изменения фокуса будут мгновенными.
Focus Smoothing Interp Speed Управляет скоростью интерполяции при сглаживании изменения расстояния фокусировки. Эта опция игнорируется, если опция Smooth Focus Changes не включена.
Focus Offset (Смещение фокуса)Это добавляет дополнительное смещение к глубине фокусировки, которое можно использовать для ручной настройки фокуса, если выбранный метод фокусировки нуждается в корректировке.
Current Focal Length (Текущее фокусное расстояние)Управляет текущим фокусным расстоянием камеры, которая управляет полем обзора (FoV) и масштабированием.
Current Aperture (Текущая апертура)Устанавливает текущий размер диафрагмы на основе числа f-stop. Обратите внимание, что этот параметр принимает только значения, которые находятся в пределах диапазона Min FStop и Max FStop.
Current Focal Distance (Текущее фокусное расстояние)Отображает значение, доступное только для чтения, которое используется настройками фокусировки.
Current Horizontal FOV (Текущее горизонтальное FOV)Отображает значение, доступное только для чтения, которое используется с помощью Current Focal Length и Filmback Settings.

Post Process Volume и Актер Camera

Следующие параметры доступны в Cine Camera, Camera и Post Process.

СвойствоОписание
Настройки камеры
Aperture (F-stop)Определяет открытие объектива камеры. Диафрагма 1/f-stop с типичной линзой, идущей вниз к f/1.2 (большее отверстие). Большие числа уменьшат эффект DoF.
Maximum Aperture (minimum f-stop)Определяет максимальное открытие объектива камеры для управления кривизной диафрагмы. Установите это на 0, чтобы получить прямые лопасти.
Number of Diaphragm BladesОпределяет количество лезвий диафрагмы внутри объектива. Можно использовать значения от 4 до 16.
Depth of Field Settings
Focal DistanceРасстояние, на котором эффект depth of field должен быть резким. Это значение измеряется в Unreal Units (см).
Depth Blur km for 50%Определяет расстояние, на котором пиксель размыт, с радиусом в половину Глубины размытия Радиуса. Это особенно полезно для эмуляции дешевого атмосферного рассеяния.
Depth Blur RadiusРадиус в пикселях с разрешением 1080p для применения в соответствии с расстоянием от камеры для эмуляции атмосферного рассеяния.

Полезные консольные переменные для оптимизации

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

Ниже приведены некоторые консольные переменные, которые могут быть полезны для привязки производительности Cinematic DoF. Обратите внимание, что это хорошая отправная точка, а дополнительные консольные переменные можно найти в разделе r.DOF.*.

  • r.DOF.Kernel.MaxBackgroundRadius: максимальный размер фонового размытия в горизонтальном пространстве экрана.
  • r.DOF.Kernel.MaxForegroundRadius: максимальный размер радиуса размытия переднего плана в горизонтальном пространстве экрана.
  • r.DOF.Scatter.MaxSpriteRatio: Максимальное отношение рассеянных пиксельных квадов как спрайтов. Полезно контролировать верхний фронт рассеяния.

Метод DOK Bokeh – {Legacy}

Этот метод depth of field будет уже устаревшим в будущем выпуске.

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

Используемая реализация использует только половинное разрешение для выполнения этого интенсивного эффекта. Он пытается сохранить производительность рендеринга в областях, где эффект не заметен, используя Adaptive Depth of Field. Bokeh DOF является более дорогостоящим, чем другие методы DOF, доступные в UE4, что делает его основным кандидатом на кинематику и демонстрацию, где привлекательные визуальные эффекты часто перевешивают любые проблемы с производительностью в этих ситуациях.

depth of field Bokeh выключен UE4Depth of Field выключенdepth of field Bokeh выключен UE4

Bokeh Depth of Field

Адаптивный Depth of Field для Bokeh DoF

Bokeh DOF отображается по четвертому разрешению (по разрешению в каждом направлении) по умолчанию по соображениям производительности. Снижающая дискретизация, которая случается, едва заметна, в большинстве случаев, и вполне приемлема; однако в некоторых ситуациях это может привести к артефактам и нежелательным результатам. Адаптивный Depth of Field решает эти типы артефактов там, где это возможно.

Адаптивный DOF без Декодирования UE4

Адаптивный DOF без Декодирования

Адаптивный DOF с Декодированием UE4Адаптивный DOF с Декодированием

Персонажи, размытые в фоновом режиме, кажутся блочными при использовании только метода понижающей дискретизации DOF. Кроме того, некоторые артефакты появляются вокруг рогов персонажа на переднем плане. Адаптивный DOF устраняет эти типы артефактов, а фоновые персонажи имеют более гладкий вид.

Адаптивный DOF можно визуализировать с помощью значка Adaptive Depth of Field в окне просмотра уровня в меню Show Visualize. Когда включено, отображается оверлей, где используется эффект понижающей дискретизации (зеленый) и где используется эффект полного разрешения (красный). Обычный цвет сцены отображается там, где не применяется размытие.визуализировать Адаптивный DOF UE4

В общем, вы хотите, чтобы Adaptive DOF отображал все зеленое. Чем больше красного отображается визуализацией, тем дороже сцена должна отображать каждый кадр.

Адаптивный DOF оптимизирован UE4Адаптивный DOF в основном оптимизированАдаптивный DOF не оптимизирован UE4

Адаптивный DOF не оптимизирован

Настройки Bokeh DOF

Следующие настройки доступны в Cine Camera, Camera и Post Process Volumes, расположенных под вкладкой Lens в разделе Depth of Field.

СвойствоОписание
Focal DistanceРасстояние, на котором эффект depth of field должен быть резким. Это значение измеряется в Unreal Units (см).
Near Transition RegionРасстояние в Unreal Units от фокальной области на стороне ближе к камере, по которой сцена переходит из сфокусированного, чтобы размываться при использовании Bokeh или Gaussian DOF.
Far Transition RegionРасстояние в единицах Unreal от фокальной области на стороне, наиболее удаленной от камеры, по которой переход сцены сфокусирован на размытие при использовании Bokeh или Gaussian DOF.
ScaleОбщий коэффициент масштаба для размытия на основе Bokeh.
Max Bokeh SizeМаксимальный размер (в процентах от ширины обзора) размытия для DOF на основе Bokeh. Обратите внимание, что производительность масштабируется с размером.
Shape TextureТекстура, которая определяет форму Bokeh, когда объекты выходят из фокуса. Обратите внимание, что их нельзя смешивать с другими Post Process Volumes.
OcclusionУправляет тем, насколько размытая геометрия выходит за пределы обычного силуэта и его непрозрачности. Значение 0,18 дает довольно естественный результат окклюзии. Для устранения проблем с утечкой цвета слоя может потребоваться значение 0,4. Очень маленькие значения (менее 0,18) обычно приводят к отрицанию эффекта размытия, хотя могут хорошо работать, когда объекты находятся очень близко к камере.
Color ThresholdКонтролирует порог, при котором адаптивный DOF переключается на использование полного разрешения на основе цвета. Меньшие значения заставляют больше сцены использовать обработку с полным разрешением.
Size ThresholdКонтролирует порог, при котором адаптивный DOF переключается на использование полного разрешения на основе размера. Большие значения заставляют больше сцены использовать обработку с полным разрешением.

Внешние ресурсы

  • SIGGRAPH 2018 – «Жизнь Боке» Гийом Абади (Guillaume Abadie “A Life of a Bokeh”) – презентация в PowerPoint ~ 150 мб
  • Диафрагма (Оптика)
  • Апертура
  • Число – F
  • Понимание Факторов, влияющих на Depth of Field