GrabDuck

Продвинутый композитинг интерьеров в Eyeon Fusion - Уроки 3ds Max

:

Настраиваем элементы рендера и сохранение

Render Elements - это, собственно, те части изображения, о которых мы говорили в самом начале: диффузная составляющая, отражения, преломления, ГИ и т. д. В настройках рендера идем в Render Elements, жмем Add и добавляем следующие элементы:

  • VRay_Background - пасс "заднего фона". Содержит информацию о небесном куполе, который указан в настройках Environment.
  • VRay_Lighting - пасс освещения.
  • VRay_GlobalIllumination - пасс глобального освещения.
  • VRay_Reflection - пасс отражений.
  • VRay_Refraction - пасс преломлений.
  • VRay_Specular - пасс бликов, имеются в виду так называемые "псевдо-блики".
  • VRay_SelfIllumination - пасс самосветящихся материалов, в нашем случае это несколько лампочек, газ на плите и пена на воде в бассейне.
  • VRay_RawTotalLighting - пасс, из которого мы будем брать тени.
  • VRay_ReflectionFilter - понадобится, если нам придется корректировать пасс RawTotalLighting.
  • VRay_RefractionFilter - также для коррекции этого пасса.
  • VRay_RawReflection - будем использовать для усиления отражений.

Различные маски - по желанию. Лично я использовал:

Имейте в виду, что нам понадобится еще один пасс - Ambient Occlusion для затенения углублений и выделения объема предметов. В версиях VRay ниже SP3 нет специальной функции для этого пасса, поэтому придется делать его самостоятельно после основного рендера.

Теперь перед нами встает проблема - как бы все это корректно сохранить. Поскольку мы не хотим сохранять каждый элемент вручную после рендера, то используем автоматическое сохранение. Идем в VRay Frame Buffer и ставим галочки:

Save RGB позволяет сохранить помимо пассов и основное изображение, а Save aplha позволяет сохранить альфа-канал, который мы не включили в элементах рендера.

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

Итак, выбираем путь сохранения и называем файл по номеру камеры, в моем случае 19. Формат сохранения пусть будет OpenEXR - он удобен поддержкой 32-битного пространства, чем мы и воспользуемся. Настройки формата:

Галочка с Alpha убрана - у нас уже есть сохранение этого канала. Обратите внимание на раскрывающуюся кнопку Extra Channels and Attributes. Туда можно запихнуть еще много различных каналов, поддерживаемых этим форматом, но сейчас мы этого делать не будем.

Теперь, прежде чем запускать рендер, нужно сменить гамму 1.6, выставленную нами в Color Mapping, на 2.0. Зачем? Этим действием мы сделаем более бледный рендер, который потом гораздо легче вытянуть в контрастный, чем наоборот. При тестовых рендерах мы оставляем гамму 1.6, но если начинаем композ - всегда сменяем на 2.0.

Запускаем рендер и идем спать:

Обратите внимание, что стеклянная перегородка в бассейне убрана на время рендера. Стекло мы сделаем композитингом.

 

Пасс Ambient Occlusion

Некоторые способы создания этого пасса можно почитать в этом уроке.

Для вирея там тоже есть описание, но такой метод сулит нам огорчения. Дело в том, что самосветящийся материал, который используется для создания пасса, будет делать черными вывернутые нормали предметов. Это актуально, например, для тюли и занавесок, вообще любых тканей. Можно, конечно, включить Emit light on back side - он сымитирует свет от вывернутых нормалей, но информацию о них возьмет с передней части, а это чревато разными глюками, т.е. совершенно неправильным отображением AO.

Чтобы этого избежать, используем более продвинутый метод. Создаем VRay2SidedMtl. Это материал, позволяющий назначить разные материалы на переднюю и заднюю часть объекта:

Translucency лучше оставить черным, чтобы материалы не просвечивали друг сквозь друга. В оба слота кидаем VRayLightMtl:

В верхний слот кидаем VRayDirt с такими настройками:

40 см - оптимальный радиус для интерьеров. Для экстерьеров можно и побольше. Сабдивов ставим 16 - шума быть не должно.

Разумеется, VRayLightMtl можно сначала настроить на Front material, а потом перебросить его в Back material. Но только в режиме Copy, а не Instance - а то результат не будет отличаться от включения галки Emit light on back side.

Чтобы отрендерить пасс с максимальной скоростью, выключаем Global Illumination и в Global Switches убираем все лишнее:

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

Вручную сохраняем пасс как 19.AO.exr.

 

Композитинг

Введение в Eyeon Fusion

Наконец, мы добрались до композитинга. Его мы будем делать в Eyeon Fusion - мощная программа, обладающая массой преимуществ перед фотошопом для композитинга. Перечислим некоторые из них:

  1. Легкая работа с 32-битным пространством. Даже самая последняя версия фотошопа отвратительно работает с 32-битными картинками: не работает больше половины фильтров, неактивны почти все режимы наложения, про Curves и Color Balance можно вообще забыть. С этими же картинками все функции Fusion прекрасно работают и открываются новые возможности, например, наложения эффекта Glow.
  2. Замечательная иерархическая нодовая система, позволяющая настраивать любой эффект на любом этапе композитинга.
  3. Удобнейшая концепция композитинга, позволяющая, построив иерархическое дерево один раз, использовать его для всех ракурсов этой сцены, просто заменяя исходные изображения.
  4. Файлы проектов "весят" несколько десятков килобайт, в отличие от сотен мегабайт файлов фотошопа.

К недостаткам можно отнести:

  1. Почти отсутствуют инструменты рисования (я обнаружил их только в инструменте Mask Paint, и там они работают плохо). К счастью, как раз для этого нам будет нужен фотошоп - в самом конце.
  2. Иерархическая нодовая система, позволяющая настраивать себя в любой момент, требует большего количества действий и раздумий, чем в фотошопе. Но это окупается гибкостью системы.

Кратко пробежимся по интерфейсу:

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

Инструменты для краткости называются нодами (узлами) или тулами (инструментами). Я предпочитаю название ноды.

Принцип работы программы - иерархический. Начиная с единственной ноды (входной картинки), мы постепенно присоединяем к ней все новые ноды - другие картинки, различные инструменты, эффекты. Постепенно выстраивается огромное иерархическое дерево нод, в котором каждый элемент настраивается в любой момент. Изменение любой ноды, стоящей выше по иерархии, приведет к пересчету всей части иерархического древа, находящейся ниже.

Здесь мы видим типичную структуру проекта. Зеленые квадраты - это ноды Loader входных изображений, т.е. наши Render Elements. Серые прямоугольники - это ноды эффектов, объединений и пр. Бледно-оранжевые прямоугольники - это маски. Розовый прямоугольник справа - финал проекта, нода Save.

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

Кроме того, даже если мы возьмем новый ракурс - мы укажем нодам новые имена файлов, поправим несколько съехавших масок - и композитинг нового ракурса также готов. Это ли не чудо?:)

Очень быстро опишу принципы соединения нод между собой. На примере ноды Merge, объединяющей две других ноды:

Треугольник - это всегда вход, квадрат - выход. Цвет треугольника зависит от его назначения. Желтый треугольник - обычный вход. В случае Merge - вход для ноды, которая окажется на заднем плане. Зеленый треугольник может означать что угодно, в случае Merge - вход для ноды, которая окажется на переднем плане. Синий треугольник - всегда вход для маски. Подобным образом соединяются все ноды в проекте.

Часть 1: основные элементы

Итак, после завершения рендера мы получили 17 файлов с такими названиями:

  • 19.VRay_Lighting.0000.exr
  • 19.VRay_ObjectID.0000.exr
  • 19.VRay_Reflection.0000.exr и т.д:

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

(Background+Lighting+GlobalIllumination+Refraction+Specular+SelfIllumination)*AO+Reflection

Где "+" - оператор сложения Add, а "*" - оператор умножения Multiply.

Обратите внимание, что операция умножения на Ambient Occlusion (AO) производится до сложения с пассом отражений.

Итак, берем каналы Specular, Refraction, SelfIllumination, Global Illumination, Lighting, Background (лучше выделять именно в таком порядке) и с помощью Drag and Drop перетаскиваем в рабочую область фьюжна. Программа автоматически выстроит ноды в красивый вертикальный столбец и создаст связки Merge между каждой парой каналов, и объединит их между собой:

Обратите внимание, что расположение элементов обратно порядку их выделения.

Самая верхняя нода Merge объединяет два канала: GI и Background. Следующая нода Merge объединяет канал Lighting с предыдущей нодой Merge. И таким образом, все каналы оказываются соединены через 5 нод.

Для удобства отображения нажмем правой кнопкой мыши по рабочей области и выберем Force Sourse Tile Pictures:

Это позволит нам отличать входные ноды изображений от нод-операторов. Правда, теперь наш красивый столбец придется раздвинуть:

Теперь необходимо выделить каждую ноду Merge и включить режим сложения. Для этого нужно перетащить ползунок Alpha Gain до упора влево:

Так нужно сделать с каждым Merge. Теперь последнюю из них перетаскиваем в окно просмотра и мы увидим изображение, полученное в результате сложения всех каналов:

Что мы видим? По сравнению с рендером, яркость и насыщенность заметно поднялась. Засветы на кухонной плитке увеличились в три раза. Видна тенденция к пересвету в целом. Отражений пока что нет - мы их не подключили.

На этом этапе такой сильный контраст и засветы недопустимы. Необходимо пробежаться по каналам и откорректировать некоторые из них. Поочередно будем перетягивать ноды Merge в окно просмотра и следить за изменениями. Первая нода, объединяет GI и Background:

Все нормально, освещение однородное, засветов нет. Перетягиваем в окно просмотра ноду, добавляющую Lighting:

Вот откуда контраст и засветы! Чтобы это исправить, нужно применить к элементу Lighting оператор Color Corrector и понизить его яркость. В панели инструментов наверху фьюжна этот оператор называется CC. С зажатым шифтом перетягиваем его на линию, соединяющую Lighting и Merge:

Программа автоматически подключит ноду в нужном направлении. Теперь, прежде чем сложиться с остальными каналами, пасс Lighting пройдет через Color Corrector и изменит свою яркость. Настройки Color Corrector:

В режиме Levels мы сильно понизили верхнюю границу освещенности (нижний белый бегунок) и чуть уменьшили общую освещенность (серый бегунок).

Перетягиваем последний Merge в окно просмотра и смотрим на результат:

Остальные каналы - Specular, Refraction, SelfIllumination - пересветов не вызывают.

Теперь добавим Ambient Occlusion. Перетягиваем наш AO.exr в рабочую область и соединяем его с последней нодой Merge посредством еще одной ноды Merge:

На этот раз используем оператор умножения. Для этого в настройках ноды переключим Apply Mode в режим Multiply:

Перетягиваем новую ноду в окно просмотра:

Да, в углах и углублениях появились тени. Но... не очень весело смотрится, правда? Нужно поднять яркость этого элемента. Добавляем Color Corrector:

И настраиваем его:

В настройках Levels мы повысили нижнюю границу освещенности для высветления углов (нижний темный бегунок), повысили контраст за счет ярких мест (верхний белый бегунок) и увеличили общую яркость элемента (верхний серый бегунок). В настройках Colors мы свели тона к оранжевому цвету, чтобы тени были теплыми (перемещаем манипулятор по цветовому кругу). Обратите внимание на переключатели Shadows, Midtones, Highlights - с их помощью можно регулировать тонировку во всех диапазонах яркостей.

Что получилось:

Обратите внимание, как затемнение хорошо легло на кухонную плитку: засвет почти ликвидирован. В большой степени изменения коснулись мелких объемных деталей:

Кувшин стал объемным, тарелочки приобрели затемнение в нижней части.

Пора добавить отражения. Все просто - через новую ноду Merge в режиме сложения подключаем Reflection:

И сразу пропускаем его через Color Corrector:

Кухонная плитка приобрела хороший вид. Настройки Color Corrector:

Сильно понижаем яркость.

Но мы видим, что после коррекции отражений чайник и некоторые другие металлические элементы стали очень темными. Для выделения ярких отражений нам нужна маска для Color Corrector'а и мы ее имеем в лице канала ReflectionFilter:

Этот интересный канал содержит в себе информацию о яркости отражений. Мы видим несколько ярких пятен: чайник, мойка, плита, люстра и несколько металлических элементов. Эти яркие места могут стать маской для ярких отражений, однако прежде нужно избавиться от темных частей изображения. Поскольку мы работаем в 32-битном пространстве, сделать это не составит труда. Применяем Color Corrector с такими настройками:

Этими настройками мы вытянули самые яркие части и одновременно приглушили кое-какие ненужные элементы. Такая тонкая работа с яркостью возможна только в 32-битном пространстве:

Теперь можно присоединить эту маску к Color Corrector'у канала отражений через синий вход:

Поскольку наша "маска" является на самом деле не маской, а растровым черно-белым изображением, нужно указать Color Corrector'у, из какого канала брать информацию для маски. Идем в его настройки и в группе Common Controls (значок радиации) указываем параметр Channel как Luminance. Теперь информация для маски будет взята из освещенности изображения. Также нажимаем Apply Mask Inverted для инвертирования эффекта:

Теперь все металлические элементы с яркими отражениями остались яркими: