Полезное
Мы Вконтакте
Discord канал
Глубина резкости (DoF) применяет размытие к сцене, основываясь на расстоянии от фокуса. Так происходит симуляция камеры из реального мира. Эффект применяет для акцентировании внимания зрителя на определенном предмете или для достижения большего реализма изображения.
В Unreal Engine 4 присутствует три реализации глубины резкости: Боке, по Гауссу и Радиальная
Глубина резкости по Гауссу (Gaussian DoF): используется обычное размытие по Гауссу. Этот метод быстр и хорошо подходит для использовании в играх, где производительность критична.
Боке — это нечеткость, размытость отдельных областей изображения или фильма, как правило тех, которые не находятся в фокусе. Глубина резкости Боке (Bokeh DoF) – метод, где рендеринг каждого пикселя происходит с использованием текстуры, определяющей форму, с помощью которой можно добиться эффекта, производимого линзами камеры. Нынешняя реализация требовательна к ресурсам компьютера, поэтому применяется в половинчатом разрешении.
Еще один способ сохранения производительности – это использование адаптивной глубины резкости (Adaptive DOF).
Боке больше всего подходит для создания кинематографических роликов ввиду своей яркой визуальной составляющей (и требовательности к ресурсам).
Радиальный DoF является новейшим дополнением глубины резкости, и позволяет создавать более реалистичную картинку. Вы можете увидеть боке округлой формы с более резким и качественным содержанием. Очень большое боке является слабостью этого алгоритма, так как из-за размера появляются шумы и не так мало, как при Боке DOF. Метод имеет хорошую производительность (гораздо лучше, чем Боке DOF) и хорошее качество, особенно в таких областях, как переходные зоны.
Значения по умолчанию из Радиального DoF специально уменьшены, чтобы вы могли настроить их по своему желанию для получения максимального эффекта. Используйте низкую апертуру для большого Боке, подбреритесь к объекту и измените поле зрения, сыграв с фокусным расстоянием.
Эффект глубины резкости делится на три уровня – Ближний, Дальний, Фокусный регионы (Near, Far, Focal, соответственно) – каждый из которых обрабатывается отдельно, после чего они объединяются.
Все уровни могут быть визуализированы. Для этого нужно установить флажок у параметра «Depth of Field Layers show» («Показывать слои глубины резкости»). Ближний регион – зеленый, дальний – синий, фокусный – черный.
Улучшенная нами версия этой визуализации также включают в себя много интересного:
При использовании Радиального DOF вы также увидите перекрестие, прикрепленное к курсору мыши, показывающее вычисленный круг «неразберихи» (BokehSize) вместе с глубиной и размером пикселя в цифрах. Обратите внимание, что размер круга не может всегда совпадать с фактическим эффектом, так как реализация не очень хорошо подходит для больших форм боке. В будущем мы собираемся изменить это.
Свойство | Описание |
Method | Определяет метод, использующийся для сцены: Боке, по Гауссу или Радиальное. |
Depth Blur Radius | Глубина радиуса размытия в пикселях на 1920. |
Focal Distance | Дистанция (в единицах Unreal Engine) от камеры, которая является центром региона, на который будет наведен фокус, и где будет отсутствовать размытие. |
Focal Region | Расстояние (в единицах Unreal Engine) за фокусной дистанцией, где также будет фокус. |
Near Transition Range | Расстояние в единицах Unreal Engine от фокусного региона ближе к камере, где будет переход от фокуса к размытию. При использовании глубины резкости по Гауссу. |
Far Transition Range | Расстояние в единицах Unreal Engine от фокусного региона в сторону от камеры, где будет переход от фокуса к размытию. При использовании глубины резкости по Гауссу. |
Scale | Общий коэффициент масштабирования для размытия Боке. |
Max Bokeh Size | Максимальный размер (в процентах от ширины изображения) для размытия в эффекте глубины резкости Боке (заметьте: затраты на просчет масштабируются в соответствии с формулой: «размер*размер»). Примерный вид функции, используемой для вычисления размеров Боке на любой дистанции, изображен ниже: |
Near Blur Size | Максимальный размер (в процентах от ширины изображения) ближнего размытия для глубины резкости по Гауссу (заметьте: затраты на просчет растут с размером). |
Far Blur Size | Максимальный размер (в процентах от ширины изображения) дальнего размытия для глубины резкости по Гауссу (заметьте: затраты на просчет увеличиваются с размером). |
Shape | Текстура, определяющая форму Боке при выходе объектов из фокуса (не смешивается). |
Occlusion | Контролирует количество «размытой» геометрии, которая выйдет за пределы своего обычного силуэта и непрозрачности. Значение 0.18 обеспечивает хороший результат. Значение 0.4 может потребоваться для решения проблем с «утечкой» или пропаданием цветов. Крайне малые значения (менее 0.18) сводят на нет эффект размытия, хотя отлично работают, когда объекты находятся близко к камере. |
Color Threshold | Граница, за которой адаптивная глубина резкости переключается на использование полного разрешения, основываясь на цвете. Малые значения обеспечивают обработку большей части сцены в полном разрешении. |
Size Threshold | Граница, за которой адаптивная глубина резкости переключается на использование полного разрешения, основываясь на размере. Большие значения обеспечивают обработку большей части сцены в полном разрешении. |
Sky Distance | Искусственное расстояние, на котором небо находится в фокусе (к примеру, 200000). Значения <=0 отключают функцию. Применяется только для глубины резкости по Гауссу. Может сильно повлиять на производительность. |
Глубина резкости Боке по умолчанию рендерится в ¼ разрешения (1/2 в каждом направлении) по причинам производительности. В большинстве случаев, субдискретизация едва заметна. Однако, она может вызывать артефакты и нежелательные результаты в некоторых ситуациях.
Вы можете заметить, что размытие у персонажей на заднем фоне имеет дефекты при использовании одной лишь субдискретизации глубины резкости (downsampled DoF ). Помимо этого, заметны артефакты вокруг рогов персонажей переднего плана. Устранить эти проблемы можно с помощью адаптивной глубины резкости, в этом случае персонажи на заднем плане выглядят лучше.
Адаптивную глубину резкости можно визуализировать, если установить флажок «Adaptive Depth of Field show» («Отображать адаптивную глубину резкости»). Так можно увидеть, где использовалась субдискретизация (зеленый цвет), а где – полноэкранный эффект (красный цвет). Обычный цвет сцены обозначает те области, к которым не применено размытие.
В общем, вы хотите везде использовать зеленый цвет. Ведь, чем больше красного, тем больше будут затраты на рендеринг.
Вы должны войти, что бы оставлять комментарии.