Основы анимации и композинга - Урок от Константина Кимa | mentor

Идею этого урока я вынашивал давно, она так бы и оставалась идеей, если бы мне не предложили написать для книги главу по анимации и композингу. Книга называется 3ds Max 2009 Architectural Visualization Intermediate to Advanced (http://www.3dats.com/products.asp). Этот урок появился благодаря Брайану Смиту (Brian Smith) и Владимиру Кваснице (который нас познакомил). Я хотел написать такой урок, который бы был одинаково полезным и понятным как новичкам, так и продвинутым людям. Что в итоге получилось - судить вам. Итак, начнем!

Рендеринг в VRay

Для начала я кратко расскажу что мы будем делать. Я расскажу про основные настройки Vray, про различные аспекты рендеринга, постараюсь рассказать про всякие тонкости, но не буду углубляться в детали. Потому что мне это не интересно, да и зачем пересказывать хэлп и то, что разжевано на многих форумах?

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

1. Вначале нам нужно проверить является ли Vray рендером по умолчанию. Идем в меню настроек рендера, и проверяем, что в меню Assign Render - Production выбран Vray. В меню Common parameters надо Render Frame Window выключить, т.к. мы будем использовать Vray Frame buffer. Далее во вкладке VRay в свитке Vray Frame Buffer надо включить Enable Built-in Frame buffer. В свитке Vray Image sampler (Antialiasing) ставим Adaptive DMC и выключаем Antialiasing Filter (он по сути дела и не нужен, тем более не надо ставить Catmul-Rom когда рендерите анимацию). В свитке VRay color mapping надо включить Sub-Pixel mapping и Clamp.

2. Идем в следующую вкладку - Indirect illumination (GI).

Включаем GI и выбираем Light Cache GI engine для Primary и Secondary лучей. В свитке Light Cache надо выставить такие же параметры, как у меня на картине (subdivs = 500, filter - none).

3. Делаем тестовый рендер. Что мы видим? На картинке видно отдельные сэмплы LC в виде  пятен - это грубая аппроксимация GI. Чтобы сгладить картинку нам нужно включить фильтрацию сэмплов. Надо выбрать Nearest Filter в настройках LC и установить Interp. samples=16. Рендерим и сравниваем с предыдущей картинкой.

С фильтрацией картинка получилась гораздо лучше, чем сильнее фильтрация, тем больше размытие GI. Надо просто подобрать оптимальный вариант для конкретной сцены.

4. Теперь рассмотрим другой GI engine - Irradiance Map. В VRay irradiance map это метод эффективного расчета глобального освещения в сцене. Т.к. в сцене могут быть объекты с разной детализацией, IM просчитывается более точно для детализированных участках и менее точно на простых участках (например на больших открытых участках). Алгоритм IM адаптивный за счет того, что IM просчитывается в несколько проходов - с начала с низким разрешением, потом всё точнее и точнее. По сути IM это набор точек-сэмплов, хранящих информацию об освещенности в данной точке, во время рендера картинки эти сэмплы интерполируются и "сглаживаются".

Итак, ставим Primary bounces GI engine - Irradiance Map. Ставим Current preset - custom, min rate -3, max rate -1, включаем Show Calc. phase и Show direct light. В Advances Options меняем Sample lookup на Overlapping и рендерим.

Что получилось? Получилась хорошая картинка без артефактов. Irradiance Map рассчитывает GI очень точно, но лучше её использовать вместе с  Light Cache, потому что LC сохраняет вторичное GI.

5. Выключаем LC - Secondary bounces GI engine - None и рендерим.

На этой картинке нет вторичного GI и картинка заметно отличается от прежней.

6. IM можно сохранить в файл, чтобы каждый раз не пересчитывать её. Для этого надо нажать кнопку Save и сохранить например в файл c:.vrmap. Затем надо поменять режим на From file и выбрать файл c:.vrmap. Теперь можно выключить LC - он больше не нужен, т.к. у мы уже посчитали GI и берем его из файла. Давайте посмотрим как выглядит Irradiance Map - для этого нужно включить Show Samples.

На картинке видны светлые точки - это и есть сэмплы. Сэмплы привязаны к геометрии и зависят от камеры. Если мы развернем камеру и отрендерим картину, то увидим вот что:

Хм, сразу появились артефакты в GI, т.к. мы берем IM из файла, а в ней нет сэмплов, просчитанных для этого вида из камеры. На картинке видно распределение сэмплов и где их не хватает.

7. Для решения этой проблемы нам нужно просчитать недостающие сэмплы и добавить в нашу IM в файл. Во-первых, нам нужно опять включить LC для secondary bounces. Во-вторых, поменять Irradiance Map mode на Incrementaladd to current map. В этом режиме Vray будет просчитывать недостающие сэмплы и добавит их в нашу IM в файл. Нужно еще включить Auto save, выбрать c:.vrmap и включить Switch to saved map. Тогда после просчета GI будет сохранятся в файл и режим автоматически переключится на From file. Выключаем Show Samples запускаем рендер.

Вот что получилось. В общих чертах с этим разобрались, теперь попробуем отрендерить анимацию в Vray. Вместо того, чтобы считать GI для каждого кадра мы может посчитать только каждый 5-10-й кадр (это зависит от скорости движения камеры) и для финального рендера брать GI из файла.

Рендеринг анимации в VRay

1. Откройте сцену anim_01.max ( архив сцен , текстуры ). В этой сцене я сделал длинный мост и добавил анимированные машинки - посмотрите анимацию. Начнем с расчета GI для всей анимации. Мы будем просчитывать GI каждый 5-й кадр. В свитке Common render нужно установить Every Nth frame = 5.

2. Во вкладке VRay в свитке Global Switches включаем - Don't render final image - нам не нужно рендерить картинку, а только просчитать GI. Нужно выключить и Hidden lights т.к. в сцене есть спрятанные ИС, которые нам понадобятся для вечерней сцены.

3. В свитке Indirect illumination мы используем такие же настройки, что и в прошлом примере, но нам надо поменять режим IM на Multiframe incremental - в этом режиме Vray удалит старую IM перед началом рендера, а в остальном этот режим аналогичен Incremental add to current map. И еще не забываем включить Auto save в файл c:.vrmap и Switch to saved map.

4. Перейдем к настройкам Light Cache, устанавливаем subdivs = 3000, потому что у нас большая сцена и для нормального GI нам нужно гораздо больше сэмплов (на самом деле будет 3000 * 3000 = 9 000 000 сэмплов).

Ставим Filter - None, а Pre-filter = 32 для ускорения расчета, потому что Filter считается для каждого кадра, а Pre-Filter только один раз после расчета LC. Меняем режим LC на Fly-Through - он как раз предназначен для анимации, в этом режиме лучи "выстреливаются" из камеры  на протяжении всей траектории движения и в каждом кадре. Включаем Auto save в файл c:.vrlmap и Switch to saved map.

Вроде бы все, ничего не забыли :) Запускаем Render и ждем 1-2 часа, пока будет идти расчет GI. На моем Intel Quad Q6600 с 8 Gb RAM все отрендерилось примерно за час. Чтобы посмотреть что вышло - скачайте файл bridge_01_gi_err.avi и посмотрите ролик - под мостом видны артефакты GI потому, что там не хватает сэмплов - мы пропустили эти учаcтки при просчете GI из-за слишком быстрого движения камеры.

5. Вернемся во вкладку Common render и установим Every Nth frame = 1 - нам нужно досчитать недостающие сэмплы GI, чтобы убрать глюки. Нам надо рендерить не всю анимацию, а только отрезок с 62 по 88 кадры, что мы и сделаем.

6. Идем в Indirect illumination, Irradiance map и Light Cache mode стоят в режиме From File. Нам надо поменять режим Irradiance map на Incremental add to current map и снова отрендерить анимацию, но теперь только кусочек под мостом. Посмотрите bridge_01_gi_fixed.avi - теперь артефактов нет! В принципе можно использовать LC для Primary и Secondary лучей. Если отрендерить анимацию, то можно посмотреть, что получиться в ролике bridge_01_gi_lc.avi .

7. Ну и в заключении темы о GI я добавлю, что мы упустили сэмплы в самом конце анимации, т.к. мы рендерили каждый 5-й кадр - 0, 5, 10... 240, 245, но 249-й кадр не просчитан! Нам остается повторить такую же процедуру, что и в предыдущем шаге для 249-го кадра - просчитать его и добавить в нашу сохраненную IM.

Двигаемся дальше. Можно продолжить и с текущей сценкой, а можно просто открыть файл anim_02.max - там уже все готово и настроено.

8. Пора добавить машинки в сцену - сделайте Unhide для слоя Cars в меню Layers (если не понятно - поищите в хэлпе про слои). Теперь у нас есть несколько машинок, движущихся по мосту и нам как-то надо отрендерить анимацию, при том, что GI для машинок мы не считали. Да оно и особо не нужно. Если бы мы считали GI c машинками, то у нас было бы куча артефактов и пятен на мосту, т.к. этот метод расчета GI предназначен только для статичных сцен. Что делать? А все очень просто - надо создать имитацию GI с помощью с сферического ИС. Для этого я и вставил в сцену VrayLight в режиме Dome для имитации рассеянного небесного освещения. Нужно выбрать VraySky - в опциях exclude/include этого ИС я сделал так, что наш VraySky светит только на машинки и не влияет на другие объекты.

При желании можно посмотреть анимацию автомобилей. Кстати, чуть не забыл! Очень важно отключить у машинок GI - в Vray properties надо выключить Receive GI, Generate GI и Visible to GI у всех машинок, иначе у нас будут глюки в анимации.

9. Выключаем LC - он нам уже не нужен, все GI хранится в IM на диске.  Идем в Indirect illumination и выключаем Light Cache - просто ставим second GIengine на None и оставляем только Irradiance map. И не забудьте проверить, что IM работает в режиме  From file.

10. Во вкладке Vray в свитке Global Switches выключаем Don'trender final image - иначе рендерится ничего не будет и в буфере вы увидите только пустоту :) В Common render устанавливаем Active time segment для того чтобы отрендерить все кадры.

11. Создадим папку C:/render. В вкладке VRay в свитке Vray Framebuffer включаем Save separate render channels - это важная часть урока, мы сохраним разные каналы (пассы) рендера для дальнейшего композинга в Fusion. Жмем кнопку Browse и выбираем папку c:/render куда будут сохранятся результаты рендеринга. В поле file name вводим 1.exr. Мы будем использовать формат OpenEXR потому что он очень удобный для многих целей - поддерживает HDR, хорошее сжатие, кучу суб-каналов внутри себя и тп. Некоторые особо упертые товарищи любят рендерить в jpeg или даже сразу в avi... Но это не наш путь :)

Установите свойства OpenEXR как на этой картинке.

12. Хотя я и работаю с гаммой 2.2, но для финального рендеринга на нужна гамма 1. Т.к. мы будем делать пост-обработку нашей анимации или просто композить, то нам надо работать в Linear color space во избежание многих проблем. Об этом я расскажу позже. В свитке color mapping ставим gamma = 1.

13. В настройках DMC sampler ставим DMC (QMC) threshold = 0.001 чтобы не было шума и фликеринга в анимации. Рендерится все будет дольше, но если вам нужна качественная анимация придется пожертвовать временем. Вообще эта тема часто поднимается, для того, чтобы продемонстрировать шум в анимации и то, как влияют на него настройки антиалиасинга - посмотрите noise_test_01.mov, noise_test_02.mov и noise_test_03 .mov .

14. Нам осталось только включить во вкладке Render elements опцию Elements active. Мы будем использовать разные каналы для композинга - velocity или vector motion для 2D motion blur, Z-depth для создания тумана или эффекта глубины резкости DOF, object_ID для масок (канал multi matte element), global illumination и direct lighting, specular и background - многие каналы я переименовал. Что делать с этими каналами мы узнаем позже.

15. В принципе всё, если ничего не забыли - можно запустить финальный рендер. У меня 250 кадров отрендерились примерно за 6 часов, 2-3 минуты на кадр. На картинке внизу я собрал все каналы, чтобы показать как они выглядят (150-й кадр).

Что в итоге получилось после "чистого рендера" можно посмотреть здесь - bridge_01_day_raw.avi . Т.к. мы рендерим с гаммой 1, а сцена настроена на гамму 2.2 - в окошке рендера картинка будет очень темной. Чтобы это исправить - нажмите на кнопку SRGB чтобы увидеть картинку в гамме 2.2.

Ну наконец финальный шаг - нам надо просчитать Ambient occlusion (AO) для того, чтобы добавить деталей в нашу анимацию.

В Vray мы можем сделать АО с помощью VRayDirt map. Откройте сцену anim_03_ao.max, в которой я сделал несколько изменений.

- выключил Indirect illumination - оно нам и не нужно.

- выключил Render Elements.

- выключил в Global switches  Lights и Shadows, а опцию Override Mtl. включил (в этот слоте находится материал "ao" из мат. эдитора)

Откройте Material editor и найдите этот материал - это простой VRayLight материал с картой VRayDirt в слоте Color.

В карте VRayDirt я использовал только 2 параметра - radius и subdivs. 30 см достаточно для нашей сцены, а Subdivs = 16 - чтобы было меньше шуму.

4. В свитке Frame buffer я поменял file name на 1.ao.exr.

5. В окне Environment and Effects Background color - чисто белый.

Все, запускаем рендер - на моей машине все отрендерилось очень быстро - 15-20 секунд на кадр. Посмотрите что вышло здесь - bridge_01_ao.avi .

Композинг - часть 1

Композинг это очень важная часть CG - на этом этапе делается огромное количество работы, причем многое из того, что многие тридэшники пытаются сделать в чистом 3d на этапе композинга делается очень просто и быстро. Ну например отрендерили мы ролик с машинкой, а заказчик захотел вместо красной машинки - синюю или зеленую... Что делать? Заново считать хххх кадров? :) Зачем? можно просто отрендерить маску для машинки (если вы не позаботились об этом заранее) и сделать простую цветокоррекцию. И всё. Я уже не говорю о таких простых вещах как сияние на бликах, lens-flares и т.п. - форумы усыпаны вопросами о том, как сделать "Ауру", глоу, сияние и пр. вокруг объектов, ИС и т.п. И уже даже не смешно читать как это "легко и просто" делается в Video Post... Я покажу на примерах что можно делать в Fusion 5.2 - но лишь самые основы, программа очень мощная и если хотите хорошо ее освоить, то придется читать мануалы, смотреть видео-туторы и много практиковаться. В принципе все тоже самое сделать и других программах - After Effects, Combustion, Shake, Nuke - принципы одинаковы.

Давайте проведем ликбез по интерфейсу. Окно Fusion на несколько главных частей:

Tools Toolbar - в этом тулбаре находятся иконки для часто используемых инструментов  (тулзов).

View Toolbar - здесь собраны дополнительные команды для масок, текста и т.п.

Display View - используется для просмотра результатов того, что вы натворили. Это окно можно по разному отконфигурировать - с одним View или с двумя и т.д. Для этого есть иконки с изображением разных layout.

Work Area - или просто Flow (поток, т.к. наши картинки перетекают по нодам как вода в водопроводе) :) Здесь же есть , Console, Comments Tab, Timeline и Spline Editor.

Controls Area - в этом окошке отображаются элементы управления для разных инструментов  в вашем flow.

Time Ruler - здесь собраны глобальные элементы управления, такие как текущий кадр, диапазон кадров, proxy (эта опция позволяет работать с картинками в более низком разрешении - 1/2, 1/4 и т.д), а также кнопочки для просмотра анимации и навигации.

Status Bar - здесь отображается разная информация о текущих операциях, времени рендера, информация о выделенных инструментах и т.п.

1. Запускаем Fusion и открываем новую композицию. Идем в Tools Toolbar и перетаскиваем на рабочее поле (во flow) иконку LD - это инструмент loader (дальше буду писать просто тул для краткости). LD загружает картинки (сиквенс) в наш флоу. В открывшемся окне браузера файлов выбираем папку, в которую мы сохранили нашу анимацию - c:/render. В этой папке мы увидим не огромный список из сотен файлов, а сиквенсы - н-р 1.Alpha.0000-0249.exr или 1.RGB_color.0000-0249.exr. Fusion сам распознает последовательности картинок для нашего удобства. Выбираем 1.RGB_color.0000-0249.exr и жмем Open.

2. Идем в File - Preferences - comp_01.comp - Frameformat в свитке Default format выбираем NTSC (Square pixel) и в Frame rate ставим 25 frame/sec. Жмем  Save для сохранения настроек.

3. Теперь у нас есть сиквенс в нашем флоу, нажимаем Shift + LMB и перетаскиваем тул Loader1 на Time Ruler и отпускаем кнопку мыши. После этого поменяет time interval с 1000 кадров (по умолчанию) до наших 249. Сохраняем нашу композицию - File - Save и сохраняем в какую-нибудь папку н-р как comp_01.comp.

4. Сейчас можно посмотреть что у нас получилось - перетяните Loader1 во View  и вы увидите картинку. Точно так же можно посмотреть результаты любого тула. Можно переключиться в режим с одним View - для этого нажмите нужную кнопочку на Tools Toolbar'е.

5. Сразу бросается в глаза, что картинка слишком темная - она в гамме 1.

Это можно легко исправить - нажмите кнопочку LUT во View Toolbar и далее Edit. LUT или look up tables - изменяет цветовое пространство в окнах View.

В LUT эдиторе ставим color gamma = 2.2 и закрываем LUT editor. Теперь во вью картинки отображаются правильно и с нужной гаммой. Можно проиграть анимацию, чтобы посмотреть что получилось. Нажмите кнопочку Play.

6. Следующий шаг - добавим пасс ambient occlusion (AO) во флоу. Добавляем новый лоадер и выбираем 1.ao.RGB_color.0000-0249.exr. Можно посмотреть превью этого пасса. Далее добавляем новый тул - Mrg - это merge tool, которой соединяет 2 картинки в одну. Перетащите его на свободное место во флоу. Нажмите правой кнопкой в пустом поле флоу и в настройках включите Force Source Tile Pictures для отображения эскизов в лоадерах.

Соединяем наши тулзы - щелкаем мышкой на красном квадратике (output node) Loader1 (1.RGB_color.0000-0249.exr) и соединяем его с желтым маркером (background input node) Merge1. То же самое делаем и для Loader2, только его соединяем с зеленой нодой Merge1 (foreground input). Сделайте превью Merge1 - видно будет только пасс АО, который был foreground, т.е. сверху. Нам надо будет поменять режим наложения в Merge1, но об этом чуть позже.

Мы всегда можем посмотреть название, общую  информацию об инструментах во флоу и для чего они предназначены. Каждый тул имеет ноды input (почти), output и mask. Input - желтые и зеленые маркеры, output - красные, а маски - синие. Если на секунду навести указатель на любую ноду, то появится всплывающее окошко с описание данной ноды, что весьма полезно. Также описание ноды появляется в Status bar.

7. Хорошо, с этим, я надеюсь, разобрались. Продолжим композить :) Выбираем тул Merge1 и идем в настройки. Меняем Apply mode с Normal на Multiply и смотрим что получилось. А получилось вот что - поверх главного пасса мы наложили пасс АО в режиме Multiply - темные участки пасса АО затемняют основной пасс, а светлые ничего не делают (по сути идет перемножение яркости пикселов).

В Photoshop  как и в Fusion есть куча разных режимов смешения, смысла описывать их все нет... В итоге после наложения пасса АО мы получили более реалистичную (как мне кажется) картинку с более выраженными деталями.

8. Давайте сравним что было до и после наложения пасса АО. Для этого нам нужно переключится в режим Split View. Нажимаем кнопочку A|B - наше окошко разделится на 2 части (левую и правую или A|B) и в каждом из них можно независимо просматривать разные картинки, а для сравнения можно двигать и вращать туда-сюда разделяющую линию (split line). Если вы увлеклись и линейка улетела в бесконечные простора вашего view, то ее можно вернуть - нажмите во view ctrl + shift + LMB и она появится под указателем мыши ;)

Не забываем включить LUT и установить гамму для В view.

Бросаем Loader1 с оригинальной картинкой в левый вью, а Merge1 - в правый. Подвигайте split line чтобы увидеть разницу - все очень просто!

9. Настало время сделать небольшую цветокоррекцию. Добавим CC (Color Corrector tool) во флоу - это очень мощный и гибкий инструмент, который нам позволяет делать кучу разных манипуляций с цветом, но мы воспользуемся лишь Levels, чтобы подправить цветовой диапазон. Соединяем Merge1 и ColorCorrector1 и смотрим что получилось (перетягиваем ColorCorrector1 в правый вью, а в левый - Merge1). Идем в настройки в меню Levels и сдвигаем правый слайдер немного влево, чтобы повысить контраст. Взгляните на разницу после нашей цветокоррекции.

10. Идем дальше. Добавляем новый лоадер - 1.pass_obj_id.0000-0249.exr - это канал для масок. Вот как он выглядит:

11. Добавляем другой СС и цепляем его к ColorCorrector1.

12. Добавляем Bmp (bitmap mask tool) чуть выше ColorCorrector2, а Loader3 ставим немного выше Bitmap1.

13. Соединяем Loader3 output и Bitmap1 input и Bitmap1 output цепляем к маске ColorCorrector2. В итоге должно получиться что-то похожее:

14. Но это не все, мы хотим заставит ColorCorrector2 работать по маске и нам надо как-то сказать Bitmap1, чтобы она брала маску из красного канала. Выбираем Bitmap1 и в настройках меняем channel - Red. Всё, теперь для маски будет использоваться красный цвет.

Перетащите Bitmap1  в вью, чтобы посмотреть как выглядит маска.

15. Хорошо, давайте сделаем цвет моря немного живей, а то он у нас какой-то не хороший. Выделяем ColorCorrector2 и перетягиваем его в B view. Самый простой способ поменять цвет - использовать color wheel - просто двигаем на нужный цвет и смотрим что получается.

Видно разницу? :)

Надеюсь у вас все получилось и вам всё понятно. Если что-то сделали не так - переделайте еще раз, все на самом деле очень просто, надо лишь один раз понять принцип. И при желании можно скачать архивы моих сцен.

16. Хорошо, продолжаем :) Я думаю неплохо бы нам добавить глоу или сияние на бликах - на машинках, на воде и тп. Добавляем новый пасс - 1.pass_specular.0000-0249.exr - это specular pass или блики по нашему.

17. Кликаем правой книжке на пустом поле во флоу и в появившемся меню выбираем - Add Tool - Matte - Luma keyer или тоже самое делаем через главное меню - Tools - Matte - Luma keyer. Luma Keyer Tool использует яркость картинки для создания альфа-канала, в результате (регулируя пороги яркости) можно удалить из картинки темные участки. Это (и не только) называется кеинг. Вообще то нам необязательно применять Luma Keyer - можно обойтись простым мерджем в режиме Screen, но я хочу показать некоторые интересные возможности. Итак, присоединяем specular pass к нашему Lumakeyer1, выключаем  Post multiply image в опциях Lumakeyer1 и смотрим что получается:

В общем, то что нам нужно :)

18. Добавим Soft Glow tool, Tools - Blur - Soft Glow и прицепим его к Lumakeyer1. Настройки SoftGlow1 оставляем по умолчанию.

19. Теперь нам надо соединить SoftGlow1 с другими тулзами. Делаем новый Mrg и коннектим ColorCorrector2 output к желтому инпуту Merge2 (далее просто BG) и SoftGlow1 output к Merge2 FG input. Ну и в конце можно немного уменьшить яркость глоу, понизив в Merge2  параметр Blend  с 1 до 0.7. Можно еще попробовать разные режимы наложения, н-р Screen.

Наше флоу должно выглядеть так, старайтесь рационально располагать тулзы, чтобы вам самим потом легче было работать ;)

20. После глоу можно добавить highlights для машинок. Для этого нам сначала нужно изолировать specular пасс машинок с помощью маски. Добавляем новый Bmp tool и соединяем его с Loader3 (там у нас канал масок). В Bitmap2 controls выбираем channel - Green, т.к. наши машинки на маске зеленого цвета. Нажимаем кнопку invert  для инвертирования маски и смотрим что получилось - черные силуэты машин на белом фоне.

21. Теперь удалим из specular канала блики, которые находятся не на машинах. Это можно сделать по-разному, я покажу лишь один из многих способов. Добавим Tools-Matte-Matte Control tool и присоединим LumaKeyer1 output к MatteControl1 input. Смотрим что получилось в B view (в A view Merge2). В окне видно что ничего не поменялось. Хорошо, соединим Bitmap2 аутпут и MatteControl1 белый инпут (garbage matte) и теперь у нас остались только блики на машинках, MatteControl1 удалил белые участки на garbage matte (Bitmap2).

22. Добавляем новый тул - Tools - Effects - Highlight и цепляем его к MatteControl1.

В настройках Highlight1 поставим Low = 0.75, поменяем Length лучей на 0.65. Устанавливаем число лучей Number of points = 6, а Merge over отключаем. Смотрим, что у нас получилось.

23. Поменяем цвет Highlight1 - добавим новый тул Corrector и прицепим его к Highlight1. Перетаскиваем ColorCorrector3 в the B view и меняем цвет на оранжевый как на картинке.

24. Делаем новый Mrg tool. Соединяемt Merge2 с Merge3 BG и ColorCorrector3 с Merge3 FG. Перетаскиваем Merge3 в B view и устанавливаем Merge3 - Alpha gain = 0. Режим Normal с Alpha gain = 0 это режим Add, который лучше всего подходит для добавления бликов

25. Добавляем Tools - Color - Color gain tool. включаем Lock R/G/B и устанавливаем gamma=2.2.

Перетащите ColorGain1 в B view - теперь LUT можно выключить (нажмите на кнопку LUT).

27. Вот и все, мы почти закончили первую часть урока по композингу. Если хотите отрендерить анимацию вам надо добавить Saver tool - SV из Tools toolbar. В открывшемся File browser вводим 1.done_.tga в строке file name  нажимаем Save. Вот теперь точно всё, нажимаем кнопку Render и ждем минут 5 окончания рендера :)

Вот что должно получится:

финальная дневная сцена

 

Композинг - часть 2

Настало время познакомиться с Z-буфером или Z-каналом. Z-канал - это просто расстояние от камеры до пикселя, чем дальше находится пиксель, тем он темней. Z-канал очень широко используется в композинге - н-р для создания тумана, глубины резкости, совмещения объектов по Z-каналу и т.д.

1. Итак, открываем новую сценку z_test_01.max и рендерим. У нас будут 2 картинки - RGB канал и Z-канал.

2. Сохраняем наши рендеры в z_test_rgb.exr и z_test_z.exr с альфа-каналом.

3. Открываем новую композицию во фьюжене, добавляем z_test_rgb.exr и z_test_z.exr.

Выбираем z_test_z.exr и отключаем alpha channel - включаем Make alpha solid т.к. нам совсем не нужна альфа в Z-канале.

4. Перетягиваем z_test_rgb.exr во view. Во вью всегда можно посмотреть как выглядят каналы в отдельности, для этого есть специальные кнопочки, а при желании можно воспользоваться хоткеями - C, R, G, B, A и Z.

5. Сделаем небо - Tools - Creator - DaySky tool, добавим Mrg и прицепим DaySky1 к BG  инпуту Merge1, а лоадер z_test_rgb.exr к FG Merge1. Вместо черного цвета на фоне получим небо.

6. Теперь нам надо добавить Z-канал к нашей картинке, добавляем новый тул в Tools - Color - Channel Booleans и соединяем Merge1 с FG ChannelBooleans1, а Z-канал с BG. Перетаскиваем во вью и включаем отображение Depth Z (нажимаем хоткей Z).

7. После того как мы переключились во вью на Z-канал, мы увидим красный крест на весь экран и предупреждение, что Z-канала оказывается и нету! Все правильно, сначала его  надо правильно подключить. Идем в настройки ChannelBooleans1 в Aux channels и включаем Enable Extra channels. Меняем To Z Buffer option на Luminance BG - эта опция говорит чэнел-булину использовать в качестве Z-канала яркость с BG инпута, что нам собственно и нужно :)

8. Сейчас во вью видно сплошное белое поле - т.к. во фьюжене для Z-канала используется диапазон от 0 до 1000, а у нас значения цвета гораздо ниже - от 0 до 1 и нам надо нормализовать эти значения. Для превью Z-канала во вью можно просто нажать кнопочку Show Normalized image. Нажимаем ее и видим, что Z-канал выглядит так же, как и в лоадере.

9. Возвращаем вью обратно в режим Color (хоткей C). Выключаем кнопку Normalized image - она нам больше не нужна. Добавляем Tools - Color - Auto Gain и цепляем к его инпуту ChannelBooleans1. В настройках AutoGain1 в Controls включаем  Do Z для нормализации Z-канала и в Common controls выключаем Red, Green, Blue и Alpha каналы - нам их нормалайзить  не надо.

10. Добавляем туман - Tools - Deep pixel - Fog. В настройках Fog1, ставим Z near plane = 0 и Z far plane = -800. Еще можно воспользоваться пипеткой для установки этих диапазонов - нажимаем на соответствующую кнопочку Pick... и водим мышкой по картинке, выбирая нужный нам near/far Z plane.

11. Хорошо, нам надо поменять цвет тумана на светло-голубой и поставить Fog opacity = 0.5

12. И в конце добавим эффект depth of field (DOF). Создаем Tools - Deep pixel - Depth blur и присоединяем его к Fog1 output. Надо поменять фокус - ставим Focal point = -6 или нажимаем кнопочку Pick... и тыкаем пипеткой в серый чайник. Ставим Blur size = 5 и наслаждаемся результатом!

До и после нашего вмешательства :)

 

Композинг - часть 3

Настало время познакомиться с еще одной интересной штукой, которая называется 2D motion blur.

1. Открываем новую композицию, меняем интерфейс на single layout и включаем Split View.

2. Добавляем 1.RGB_color.0000-0249.exr во флоу, добавляем Color gain tool и цепляем его к выходу Loader1. В настройках ColorGain1 меняем гамму на 2.2 как мы делали это ранее, затем перетаскиваем тул в А view.

3. Добавляем 1.pass_velocity.0000-0249.exr и перетаскиваем его B view. Это канал скоростей, в котором хранится информация о скорости и векторе движения пикселя в данном кадре. Мы будет использовать этот канал для создания 2D motion blur.

5. Добавляем Tools - Blur - Vector Motion Blur во флоу. Цепляем Loader1 к BGVectorMotionBlur1 и Loader2 (motion vectors) к зеленой ноде (VectorMotionBlur1.vectors).

7. Устанавливаем VectorMotionBlur1 X Channel в Red и Y channel в Green. Таким образом мы будем брать X vector из канала Red, а Y vector из канала Green. Канал Blue не используется, т.к. у нас 2D векторы.

8. Ставим blur Scale = 32 для увеличения motion blur (иначе его совсем не видно) и перетаскиваем VectorMotionBlur1 в B view.

9. Да уж, что-то явно не так - моушн блюр какой-то неправильный, почему? А потому что нам надо убрать лишнюю информацию из каналов - 3d max рендерит канал скоростей по своему - статичные объекты там серые (0.5, 0.5, 0.5 в rgb), а для фьюжена неподвижные объекты пиксели должны быть черными. Давайте исправим эту проблему.

10. Добавим Color Curves tool, хватаем, нажимаем Shift и вставляем ColorCurves1 между Loader2 и VectorMotionBlur1. С клавишей Shift точно также можно вставлять и выдергивать тулзы во флоу. Попробуйте.

11. В настройках ColorCurves1 в Controls выбираем левый нижний маркер и вводим 0.5 в поле In чтобы сдвинуть его вправо - после этого серые пиксели станут черными.

Вот и все, теперь у нас правильный моушн блюр, а на картинке внизу видно что было до и после коррекции.

Можно интереса ради поиграть с разными значениями Scale в параметрах моушн блюра.

 

Композинг - часть 4

Вот мы наконец добрались до финальной части нашего урока. Мы сделаем ночной вариант сценки с мостом. Итак, продолжим!

Сначала нам нужно отрендерить GI для моста и Volume light пасс для фар и фонарей.

1. Открываем сценку anim_03_night.max (вам понадобится файл sky_7.rar с HDR-картой вечернего неба) - она уже подготовлена для просчета GI. Для этой сценки я сделал HDR-карту заката в Vue 6 и вставил в environment.

2. Запускаем просчет GI, после окончания открываем сценку anim_04_night.max. В этой сцене я отключил ненужные каналы и оставил только Specular и Self-Illumination - остальные каналы при желании можно взять из прошлой анимации. Рендеринг займет 6-8 часов, ролик тут - bridge_01_night_raw.avi.

3. Открываем сценку anim_03_vl.max - в этой сценке все ИС генерируют Volume light. Рендерится все сканлайном, примерно 20-30 minutes на всё или 10-15 секунд на кадр. Можно конечно и враем отрендерить, но тогда будут проблемы с антиалиасингом.

4. Теперь после того, как отрендерили все нужные пассы мы будем композить. Открываем старую композицию с дневным вариантом моста и сохраняем под новым именем.

5. Выбираем Loader1 и в Controls меняем filename с C:\render.RGB_color.0000.exr на C:\render.RGB_color.0000.exr.

6. Удаляем тулзы ColorCorrector1, ColorCorrector2 и Bitmap1.

7. Выбираем Loader4 (specular pass) и в Controls меняем filename с C:\render.pass_specular.0000.exr на C:\render.pass_specular.0000.exr.

8. Выбираем Highlights1 и устанавливаем Low = 0.6 чтобы сделать немного хайлайты заметней.

9. Теперь нам надо сделать glow вокруг фар, фонарей и дорожных огней. Добавляем во флоу self-illumination pass - C:\render.pass_illumination.0000-0249.exr.

10. Создаем Soft glow и цепляем его к self-illumination, в настройках ставим Glow size = 3 пикселя и Blend = 0.5.

11. Создаем еще один Soft glow и цепляем его к Softglow2. В настройках Softglow3 ставим Glow size = 9 и Blend = 1. Не забывайте делать превью своих действий.

12. Теперь нам надо сделать merge для глоу и остальной части нашей композиции. Добавляем новый merge tool (Merge4) и цепляем его BG к Merge3 output, а Softglow3 output к FG Merge4.

В настройках Merge4 ставим Apply mode - Normal, а Alpha gain = 0 - как я уже писал ранее это режим Add.

13. В нашем следующем шаге добавим Z-канал и сделаем ночной туман. Создаем новый loader и загружаем 1.pass_z_depth.0000-0249.exr.

14. Создаем Tools - Color - Channel Booleans и цепляем Merge4 output к желтому инпуту ChannelBooleans1, а Z-канал к зеленому инпуту.

15. В настройках ChannelBooleans1 в Aux channels включаем Enable Extra channels и ставим в To Z Buffer option - Luminance BG.

16. Для нормалайза Z-канала добавляем Tools - Color - Auto Gain и цепляем его к выходу ChannelBooleans1. В настройкахt AutoGain1 включаем Do Z и отключаем Red, Green, Blue и Alpha.

17. Добавляем Fog tool - Tools - Deep pixels, соединяем Fog1 и AutoGain1, перетягиваем Fog1 в B view. В настройках ставим темно-синий цвет тумана Fog color и Fog Opacity = 0.5 или 0.6.

18. Создаем новый Color Corrector после Fog1 и меняем Master - RGB - Gamma = 0.8 чтобы сделать картинку чуть темней, а то совсем на ночь непохоже :)

19. Самое время добавить вольюм лайты - через новый лоадер грузим C:\render.v_light_0000-0249.exr.

20. Создаем новый Color Corrector и меняем Master - RGB - Gain = 2, чтобы сделать ярче вольюм лайты.

21. Добавляем  Soft Glow после ColorCorrector2 и оставляем настройки по умолчанию.

22. Добавляем merge tool (Merge5) и соединяем ColorCorrector1 с BG input Merge5, а ColorCorrector2 с FG input. Меняем режим Apply mode на Screen или Add и Blend = 0.4.

23. Вот и всё, нам осталось поменять в Saver1 - Filename на C:\render.done_night_.tga.

Вот что должно получиться:

А вот финальная анимация - bridge_01_night_final.avi.

PS

Я ранее обещал объяснить, почему нам надо рендерить картинки в линейном цвете с гаммой 1. Для начала давайте посмотрим как собираются пассы в картинку. Все эти пассы - direct lighting, global illumination, reflection, refraction, specular надо соединять в режиме Add. Для начала соединяем direct lighting и global illumination.

Затем добавляем reflection, refraction и specular.

Ну и в самом конце (но не обязательно, можно и вначале) можно добавить фон - или из отдельного канала, или из другой картинки.

Все эти манипуляции проделаны в линейном цвете, но если сохранять картинки с гаммой 2.2, то вот что мы получим после композинга:

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

Вот и все, надеюсь вам понравился этот урок. Все пожелания и замечания оставляйте на форуме, писать на почту мне не надо, лучше старайтесь разобраться во всем сами, тем более что ничего сложного тут нет. Успехов! ;)

Случайные работы 3D

Мать
Львовсий дворик
Say Hello To Sunshine
Orc Enemy
Rocket Raccoon
Kawasaki Ninja

Случайные работы 2D

Незабываемый вечер
фотограф ))) или увлекси ))
Undead Alchemist
Плачущее Деревце (world Of Warcraft)
Flight
Башня мастера рун
Наверх