Настройка Lightmap для miSSS_fast материалов в Maya Mental Ray
Данный урок предназначен начинающим "Майщикам" (в особенности бывшим "Максерам" ("Максюжникам", "Максистам" и т. д.), имевшим какой-то опыт пользования FastSSS материалами в 3DS MAX c Mental Ray), которые столкнулись с проблемой настройки Lightmap для SSS материалов в Maya Mental Ray.
В принципе можно попытатся найти что нибудь про ЭТО в официальном хэлпе к Maya-версии Mental Ray, но зачастую новичкам трудно разобратся в проблеме по английским текстам без картинок и пошагово расписанных действий (такой вывод сделан исходя из собственного опыта несмотря на то, что я хорошо знаю английский (смайл)).
Итак. Для тех кто не знает что такое SSS и MentalRay FastSSS в частности, скажу вкратце:
SSS (Sub Surfase Scattering – Под Поверхностное Рассеивание) – свойство материала, которое позволяет ему рассеивать попадающий на него свет под поверхностью, т. е. внутри сделанного из этого материала предмета. Этим свойством обладают практически все окружающие нас объекты, некоторые в большей, некоторые в меньшей степени в зависимости от разных характеристик материала. Легко пронаблюдать этот эффект поднеся свою руку к свету: кожа по краям будет просвечиваться красноватым цветом; или глядя на горящую свечу: воск из которого она сделана пропускает свет и как бы светится изнутри причем чем болиже к огню тем сильнее. Практически все рендеры для макса поддерживают SSS. Нас же интересует Mental Ray for Maya. Для создания эффекта рассеивания света под поверхностью наиболее целесообразно использовать материалы из группы misss_fast.
Эти материалы выгодны тем, что создают достоверный эффект SSS без учета физических свойств материала (для этого есть misss_physical), при их настройке учитываются глубина проникновения света и цвет внутренних слоев материала. Иногда их еще называют Non Physycal SSS материалами, т. к. для работы они не требуют генерации фотонов, рейтрейсинга и т. д. Расчет SSS в этих материалах происходит посредством Lightmap (растровой карты хранящей данные о пикселях в формате с плавающей точкой) - карты освещенности и Depthmap - карты глубины (т. е. расстояния каждой точки объекта от плоскости на которую эти точки проецируются). Обе эти карты записываются в один файл.
Более подробно обо всем что касается SSS Fast в Ментал Рэй можно прочесть здесь (www.ixbt.com/soft/ss_fast.shtml). Это статья в которой ув. тов. Игорь Сиваков приводит исчерпывающее описание возможностей "Быстрых" SSS-материалов на примере 3DS MAX Mental Ray (кстати, эта статья может быть интересна не только новичкам). Благодарность и низкий поклон автору.
В 3DS Max Mental Ray эти карты (в смысле Lightmap и Depthmap) по умолчанию создаются во время рендера и хранятся в памяти.
Ситуация:
Начинающий "Майщик" создал модель, допустим свечки и хочет сделать материал, похожий на воск. Если он еще и бывший "Максер" и до этого пользовался в Максе материалом "SSS Fast Material", то и в Maya Mental Ray он выбирает его аналог misss_fast_simple_maya, визуализирует и видит во фрэймбуфере хитросплетенную дулю за место SSS. Примерно вот так:
Полигональная свечка и два источника света – один с Intensity = 1 непосредственно над свечкой и еще один с Intensity = 0,1 для легкой посветки всей сцены.
Мда... на воск немного не похоже, точнее, совсем не похоже.
Бывший "Максер" (или человек пользующийся 3ds max помимо Maya) проделивает тоже самое в 3DS Max и вот результат:
Гм… Все нормально...
Опытному "Майщику" ситуация может показаться глупой (oн даже скажет что-то типа "Зачем писать про это урок?!"). Но для начинающего 3д художника-Майщика это может стать проблемой. Тем более для "Максиста", который всем этим пользовался, не вдаваясь в подробности про всякие там "лайтмапы" (это про меня (смайл)).
Все дело в том что в Maya Mental Ray хочет сохранять LightMap в файле на жестком диске, и для того, чтобы заставить SSS-материалы работать как надо, нужно присоединить к Shading Group данного материала шейдер, который будет заниматься созданием, сохранением или загрузкой этого файла.
Делается это следующим образом:
1. Допустим есть сцена с каким-нибудь объектом (у меня этот объект – свеча, но, чтобы не терять время можно создать какой нибудь примитив, например, цилиндр) и источником света.
2. В настройках рендера (кнопка
) выбрать активным рендерером Mental Ray (Render Using → mental ray).
3. Зайти в Хипершэйд — меню Window → Rendering Editors → Hypershade.
4. Создать материал misss_fast_simple_maya - в меню Хипершэйда выбрать: Create → mental ray materials → misss_fast_simple_maya.
В хипершэйде появится узел этого материала:
5. Присвоить этот материал объекту: в вьюпорте выделить объект, нажать на него правой кнопкой и выбрать Materials → Assign Existing Materials → misss_fast_simple_maya1.
6. В хипершэйде два раза клацануть по узлу misss_fast_simple_maya1. Справа появится панель свойств (или по-научному Attribute Editor).
7. Развернуть свиток Lightmap:
Здесь лучше сразу поставить побольше сэмплов например 128 или 256 — изображение будет более качественным и нажать на кнопку рядом с полем Lightmap.
8. Автоматически создастся узел mentalrayTexture с названием по умолчанию mentalrayTexture1:
Так это выглядит в хипершэйде.
Этот узел занимается загрузкой Lightmap из текстуры. А её то у нас и не-е-е-ту...
Здесь ставим галку на параметр Writable (Записываемая). Задаем размер файла по ширине и высоте а пикселях. Важно, чтобы высота (Height) равнялась высоте резолюции рендера, а ширина (Width) была в 2 раза больше (можно, конечно, и меньше поставить, но из-за этого будет куча артефактов и не совсем SSS – я пробовал для прикола). Оговорюсь: не обязательно ставить высоту равной высоте рендера – для повышения качества картинки можно взять и больший (или меньший для понижения) размер, но изменения должны быть пропорциональными. Например, если резолюция визуализации установлена на 640х480, то размер LightMap можно задать 1280х480 (как у меня на рисунке), или 1600х600, или любой другой, но ширина и высота карты должны рассчитываться исходя из этих пропорций.
Параметр File Size Depth ОБЯЗАТЕЛЬНО ставить в режим 32 bits.
В поле Image Name написать имя файла в который будут записываться данные. Имя файла должно начинаться с символа "\" или должен быть указан полный путь. Я задал имя \а это значит что в корне диска D на котором у меня стоит Майка при рендеринге будет создан файл с именем "а".
9. Теперь надо прикрутить шэйдер который эту самую карту будет генерить. Для этого в ментале есть шэйдер misss_fast_lmap_maya.
Заходим, значит, в хипершэйд. Там выбираем закладку Shading Groups и клацаем (если панель Attribute Editor закрыта то клацаем 2 раза) на узле misss_fast_simple_maya1SG. Заодно можно развернуть его Graph Network и посмотреть. Должно получиться что-то типа:
Это Graph Network узла misss_fast_simple_maya1SG.
А это атрибуты узла misss_fast_simple_maya1SG.
Здесь нужно развернуть свиток Custom Shaders и нажать на кнопку рядом с полем Light Map Shader (на рисунке нажата).
10. В появившемся окне Create Render Node в свитке Lightmaps выбрать шэйдер misss_fast_lmap_maya:
11. В Attribute Editor появятся настройки для этого узла:
В поле Lightmap нужно написать имя узла через который происходит запись-загрузка Lightmap. В данном случае это mentalrayTexture1.
12. В принципе всё готово. Можно развернуть Graph Network для misss_fast_simple_maya1SG снова и посмотреть на соединения узлов, должно получиться нечто подобное:
13. Нажимаем на кнопку Render
. При каждом рендеринге Mental Ray будет создавать lightmap и записывать его поверх предыдущего в указанном месте.
Ну не совсем воск, но уже похоже. Здесь все настройки материала misss_fasf_simple_maya1 по умолчанию. Если у Вас большая модель то возможно понадобится, либо её уменьшить, либо в настройках материала изменить значения FrontSSS Radius и BackSSS radius (то есть увеличить глубину проникновения света внутрь объекта).
Материал для свечи, сделанный за 1 минуту (или даже меньше), потому то он и называется FastSSS
Более подробно о настройках FastSSS материалов можно прочесть в статье, указанной выше. Несмотря на то, что в ней описывается Макс-Ментал Рэй подавляющее большинство настроек в материалах для Макс- и Мая- Ментал Рэй аналогичны.
Ради интереса можно найти в корне диска файл "а" и открыть его какой-нибудь программкой типа Imf_disp:
Это фрагмент LightMap свечки. Обратите внимание на характерную "Полосатость" – в таком виде хранятся данные об освещенности и глубине модели.
The END.
Благодарю за внимание. Надеюсь что данный урок сэкономит кому-нибудь пару часов или дней на поиск по Интернету ответа на этот вопрос.







