Это базовый урок по Compositing в Blender, созданный в версии 4.1, для начинающих и с упором на применение Ambient Occlusion в рендерах.
Текстовая расшифровка видео
Всем привет! Это базовый урок по Compositing в Blender, созданный в версии 4.1, для начинающих и с упором на применение Ambient Occlusion в рендерах.
Ambient Occlusion, это техника, которая в зависимости от реализации рассчитывает или имитирует затемнённые области объектов, куда не попадает окружающее освещение. Это происходит в углах, трещинах, впадинах, нишах, скрытых местах и других подобных ситуациях.
Это также происходит, когда два объекта соприкасаются друг с другом, как, например, предметы на столе в сцене, которую я использую для этого урока. Без Ambient Occlusion рендер выглядит менее реалистично, так как объекты будто бы не касаются друг друга.
При использовании Ambient Occlusion формы объектов лучше определяются, создается ощущение глубины, и изображения становятся более убедительными и реалистичными.
В этом уроке мы узнаем, как получить информацию о Ambient Occlusion, как изменить размер областей окклюзии и как сделать эффект более или менее выраженным.
Но это ещё не всё: в конце урока я расскажу, что делать, если в отрендеренной сцене присутствует виртуальная вселенная в качестве фона, так что оставайтесь до конца!

В Blender Ambient Occlusion можно реализовать на уровне материалов (то есть для каждого материала отдельно) и на уровне рендера, используя данные Blender о положении и форме объектов в сцене. В этом уроке мы рассмотрим Ambient Occlusion на уровне рендера, в постобработке.
В этом уроке я использую движок рендеринга Cycles, но рабочий процесс также подходит для Eevee.
По умолчанию при рендере сцены Blender не предоставляет информацию об Ambient Occlusion в ноде Render Layers. Поэтому первым делом нужно активировать Ambient Occlusion Render Pass в разделе Light Passes вкладки View Layer в Properties Editor.
После этого запустите рендер и переключитесь в редактор Compositor, где мы сможем наблюдать изменения на фоне, активировав функцию Backdrop и добавив узел Viewer.
В моем случае я добавляю узел Reroute, который подключаю к Composite и Viewer. Таким образом, информация, поступающая на Reroute, будет отправлена и в финальный рендер на диск, и в предпросмотр в редакторе Compositor.
Чтобы изменить размер предпросмотра композитинга в фоне редактора, нажмите V или ALT V. Чтобы переместить предпросмотр, удерживайте ALT и используйте среднюю кнопку мыши.

Сначала подключим выход Ambient Occlusion из узла Render Layers к узлу Reroute, чтобы наблюдать его.

Blender предоставляет информацию об окклюзии объектов напрямую на основе геометрии сцены, так что мы замечаем окклюзии между различными объектами, например между чашкой и столом, а также внутри отдельных объектов, как в случае с цветами.
Также видно, что эта информация довольно зернистая или, точнее, шумная... К счастью, у нас есть узел, специально предназначенный для уменьшения шума, добавим узел Denoise из группы Filter прямо между выходом Ambient Occlusion и узлом Reroute.

Эффект становится заметен сразу, даже с настройками Denoise по умолчанию.
Чтобы добавить эту информацию к оригинальному рендеру, вставим узел Mix Color из группы Color Mix, установив режим Multiply и значение параметра Factor равным 1.
Затем подключим выход Image из узла Render Layer к первому входу Image узла Multiply.
Затем мы подключаем выход узла Denoise ко второму входу Image узла Multiply и наблюдаем результат, подключив выход Multiply к узлу Reroute.

Умножение цвета на значение в градациях серого приводит к затемнению цвета, так как это по сути умножение чисел от 0 до 1. В итоге получается значение меньше исходного, и цвет становится темнее.
Рендер сразу выглядит гораздо убедительнее, чем исходный. Мы можем оценить эффект Ambient Occlusion, включая и выключая узел Multiply, что можно сделать, выбрав этот узел и нажав клавишу M (сокращение от Mute), нажимая её несколько раз…
…однако мы еще не закончили, потому что мы можем расширить, сузить или затемнить/осветлить информацию в канале Ambient Occlusion перед тем, как применить её к изображению.
Чтобы лучше наблюдать эффект от действий, которые я сейчас применю к выходу Denoise, я подключаю этот узел к Reroute.

Чтобы увеличить или уменьшить области, создаваемые Ambient Occlusion, можно использовать узел Dilate/Erode из группы Filter. Этот узел выполняет морфологические операции, влияя на форму тёмных областей. При положительном значении Distance тёмные области уменьшаются, при отрицательном, увеличиваются.


Чтобы сделать Ambient Occlusion темнее или светлее, можно использовать узел Gamma, который позволяет осветлять или затемнять изображение без превращения серых пикселей в чисто чёрные или белые.
При желании можно добиться похожего эффекта с помощью узла RGB Curve, изменяя C-кривую, чтобы она повторяла форму гамма-кривой. Эта операция отличается от простого сложения или вычитания значений и больше подходит для такой коррекции.


Теперь, когда мы знаем эффект от узлов Dilate/Erode и Gamma, подключаем выход Gamma ко второму входу Multiply, а затем подключаем выход Multiply к узлу Reroute.
Таким образом, мы можем изменять значения узлов и наблюдать эффект, теперь уже на оригинальном рендере.

Наконец, помните, что у узла Multiply есть параметр Factor, с помощью которого можно регулировать интенсивность эффекта, применяемого к оригинальному рендеру. Значение 0 означает, что вы получите только оригинальное изображение, а значение 1, полное применение эффекта. Промежуточные значения соответствуют пропорциональному применению.

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


Чтобы решить эту проблему, перед рендером такой сцены активируйте также Environment Render Pass, который изолирует фон виртуальной вселенной и показывает его в цвете.

Все остальные объекты в этом канале будут черными.

Теперь добавьте узел Mix Color, установите его в режим Exclusion, задайте значение 1 для параметра Factor и подключите Environment Render Pass ко второму входу Image этого узла.
Затем подключите выход Multiply, который мы использовали для применения Ambient Occlusion, к первому входу Image узла Exclusion.

Помните: в этой схеме узел Exclusion будет работать правильно только если на его первый вход Image подаётся результат умножения Image на Ambient Occlusion; не подключайте Image напрямую к Exclude.
Ну вот и всё по этому уроку! Надеюсь, он был полезен! До скорого!