Основы анимации и композинга
Идею этого урока я вынашивал давно, она так бы и оставалась идеей, если бы мне не предложили написать для книги главу по анимации и композингу. Книга называется 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:\1.vrmap. Затем надо поменять режим на From file и выбрать файл c:\1.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:\1.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:\1.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:\1.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\1.RGB_color.0000.exr на C:\render\2.RGB_color.0000.exr.
6. Удаляем тулзы ColorCorrector1, ColorCorrector2 и Bitmap1.
7. Выбираем Loader4 (specular pass) и в Controls меняем filename с C:\render\1.pass_specular.0000.exr на C:\render\2.pass_specular.0000.exr.
8. Выбираем Highlights1 и устанавливаем Low = 0.6 чтобы сделать немного хайлайты заметней.
9. Теперь нам надо сделать glow вокруг фар, фонарей и дорожных огней. Добавляем во флоу self-illumination pass - C:\render\2.pass_illumination.0000-0249.exr.
10. Создаем Soft glow и цепляем его к self-illumination, в настройках ст