Создание драгоценных камней с использованием Mental Ray в 3D max
Создание драгоценных камней (mental ray)
Доброго времени суток!
Хочу предложить урок по созданию драгоценных каменей в 3d Max, с использованием рендера mental ray и дополнительного шейдера к нему prism_photon. Не так давно я задался такой целью и долго искал как получить правильный эффект дисперсии, помогли на форуме, спасибо Scavenger давшему ссылку на нужное место. Урок рассчитан на начинающих пользователей, которые недавно познакомились с Максом, каждый шаг подробно расписан. Используется версия 3D Max от 9 и выше ( для 2009 придется самим искать определенные настройки, там немного другая вложенность меню), так же используется дополнительный шейдер, который свободно распространяется и его можно скачать бесплатно и без регистрации тут.
Инструкция по установке прилагается там же в архиве в папке для Макса.
Итак начнем:
Запустили программу, в начале необходимо выбрать тип рендера (иначе будут закрыты нужные нам материалы):
В основном меню «Rendering»-«Render…» или кнопка «F10», в свитке спускаемся до закладки «Assign Render», разворачиваем ее и нажимаем кнопку списка рендеров. Из предложенного списка выбираем «mental ray Render» и нажимаем «ОК»:
Теперь создадим несложную сценку для тестирования нашего материала, сразу ставить сложно-ограненный камень не станем, так как будет сложно разобраться в отражениях и преломлениях на большом количестве граней. Пусть это будет обычная пирамидка (в детстве такими баловались, пуская радужные блики по стенам).
Делаем пирамидку размером основания 6см и высотой 4см.
Можно в принципе использовать другие единицы измерения (кто как привык), но лично мне удобнее пользоваться метрической системой. Единицы измерения выбираются в: основное меню «Customize» - «Units Setup…» и меню выбираем нужное:
Итак создаем пирамиду: В командной панели выбираем стандартные примитивы и из предложенных – пирамиду:
для придания более реалистичного вида снимем фаску с граней пирамиды, для этого необходимо конвертировать примитив в редактируемую сетку. Делается это путем щелчка Правой кнопкой мыши (RM) по созданной пирамиде и выбор пункта- конвертирование в редактируемую сетку (мэшь):
в командной панели откроется свиток свойств и действий для мэша, нам необходимо выделить ребра. Нажимаем кнопку «Edge» и выделяем все ребра пирамиды (можно просто удерживая левую кнопку мыши (LM) выделить все поле над пирамидой в любом окне проекции) и не снимая выделения в свитке «Edit Geometry» находим поле рядом с кнопкой «Chamfer» и ставим там 0,1см и нажимаем кнопку «Chamfer». Все, фаска с ребер на 1мм снята:
теперь создадим плоскость, на которой будет стоять пирамида и два источника света:
В командной панели выбираем стандартные примитивы и из предложенных – «Plane», размеры можно установить 100 на 100см и расположить ее под основанием пирамиды. Далее источник света, который будет просто освещать сцену. Для этого подойдет «Omni» - всенаправленный источник света. В командной панели выбираем источники света и из предложенных - «Omni»:
установим его высоко над пирамидой, чтобы освещалась вся сцена. Далее нужно подредактировать некоторые его свойства. При выделенном нашем «Omni» нажимаем закладку «Modify» на командной панели, и исправляем значение «Multiplier» на 0,5, тем самым снизив интенсивность света на половину.
далее нужно исключить этот источник из просчетов эффекта каустики и непрямого освещения (на данном этапе это будет только мешать и задерживать процесс просчета сцены (рендеринга). Прокручиваем свиток со свойствами ниже до закладки «mental ray Indirect illum.», раскрываем ее и снимаем галку с пункта автоматического просчета( на всякий случай проверив что не стоит галка в ручном управлением просчета):
Так, с «Omni» закончили. Теперь нужно создать направленный источник света, который будет освещать пирамиду и за распространением лучей которого мы и будем наблюдать. В командной панели, из закладки источников света выберем «Target Direct», который дает прямой направленный свет, диаметр луча поставим равный примерно 1 см, поле спада (затухания) луча тоже максимально уменьшим. ( программа подредактирует диаметр луча немного, но для нас это не существенно)
ВНИМАНИЕ! после создания зайдите в свойства источника света - закладку «Modify» (также как и для «Omni») и проконтролируйте параметры Multiplier, он должен быть равен 1.0 и в свитке «mental ray Indirect illum» поставьте галку на автоматическом просчете каустики ( в зависимости от настроек Макса, создавая следующий источник света, аналогичные свойства переносятся из ранее созданного).
Все объекты сцены созданы, осталось их правильно расположить. Пирамиду нужно поставить на грань, а не на основание, а направленный источник света направить на одну из граней. С помощью кнопок вращения и перемещения расположите пирамиду и источник света так, как нам нужно (у направленного источника света цель и сам источник перемещаются отдельно, если необходимо передвинуть их одновременно, выделите их LM удерживая клавишу «Ctrl»). В итоге сцена должна выглядеть примерно так:
Последним шагом укажем рендеру, что для пирамиды нужно рассчитывать эффект каустики (прохождение лучей в прозрачных материалах) и включить этот эффект для просчета рендером.
Выделяем нашу пирамиду и щелкаем на ней RM, в появившимся меню выбираем пункт свойств объекта:
на форме свойств ищем закладку «mental ray» и ставим галку на пункте Генерировать каустику:
Теперь для рендера: Вызываем окно рендера «F10», заходим на закладку «Indirect Illumination», свиток «caustic and GI» и ставим галку : Caustic-Enable:
Все сцена подготовлена, если сейчас провести рендеринг, получим ошибку просчета каустики, так как дефолтный материал призмы этого эффекта не предполагает. Теперь займемся самым главным – созданием материалов.
Создадим материал для прозрачных, не цветных минералов (алмаз, горный хрусталь, топаз….)
Немного теории:
Главные отличия прозрачных, бесцветных материалов состоят в разном коэффициенте преломления и величины дисперсии. Есть еще и менее характерные оптические особенности (с нашей точки зрения) – двойной коэффициент преломления и эффекты, вызванные строением минерала, но на данном этапе нам они не нужны.
Преломление- это отклонение луча света на границе двух сред, вызванное разницей скорости света в этих средах
Дисперсия – разложение белого света на составляющие цвета из-за разницы скорости света, для каждой волны спектра, в материалах разной плотности.
Приведу табличку коэффициентов, для наиболее распространенных минералов, которые существуют в бесцветном варианте:
минерал |
Коф. преломления |
Коф. дисперсии |
Алмаз |
2,417 |
0,044 |
Циркон |
1,777 |
0,039 |
Топаз |
1,610 |
0,014 |
Цитрин |
1,544 |
0,013 |
Горный хрусталь, кварц |
1,544 |
0,013 |
Кальцит* |
1,486 и 1,658 |
0,008 и 0,017 |
Флюорит |
1,434 |
0,007 |
* кальцит имеет двойное преломление(подробности ниже).
Алмаз имеет самый высокий коф. дисперсии среди природных материалов, существуют искусственные материалы коф. которых больше чем у алмаза.
Итак создадим материал на примере горного хрусталя:
В редакторе материалов (вызывается кнопкой «М») или ( «Rendering» - «Material Editor») выделяем один из свободных материалов (шариков) и получаем для него материал (кнопка Get Material), в открывшимся браузере выбираем материал «mental ray». После чего для удобства переименовываем материал своим обозначением – Горный хрусталь. ( если вы только начинаете работать в Максе, желательно приучить себя всем созданным объектам, материалам и картам давать собственные имена- будет легче ориентироваться в больших сценах)
нам открылся «пустой материал», которому не назначен ни один шейдер. Начнем с поверхности. Назначим в пункте «Surface» люмовский шейдер стекла «Glass (lume)»:
Теперь нужно скопировать назначенный шейдер на следующий слот – shadow. Можно конечно аналогично выбрать его из браузера, но удобнее и практичнее его скопировать из назначенного, сделав их зависимыми. Возвращаемся по вложенному списку материалов на уровень вверх – раскрываем список уровней и активируем наш Горный хрусталь.
Щелкаем RM по назначенному шейдору для Surface и из меню выбираем копирование, потом также RM по слоту для шейдора shadow и указываем Paste(instance):
получились две карты свойств с зависимыми параметрами – изменяя настройки одной, автоматически меняется вторая.
Вернемся в назначенный шейдер glass (lume) - просто нажимаем кнопку с шейдером, практически все поля заполнены нужными для нас значениями:
материал поверхности и диффузное отражение – белое, отражение и прозрачность – полная (единица равна 100%)
а вот Index Of Refraction (коф. Преломления) мы изменим на 1,544 – пусть будет как в таблице и если вы моделируете другой минерал, то там должен стоять его индекс.
остальные параметры пока трогать не будем.
Возвращаемся в материал Горный хрусталь и назначаем шейдер для расчета фотонов каустики:
Жмем на кнопку напротив Photon и в браузере выбираем добавленный шейдер prism_photon:
далее подробнее остановимся на его настройках:
Первые два параметра ior_min и ior_max – должны отличаться на величину дисперсии в нашем случае для хрусталя на 0,013. то есть минимальное значение ior_min равен коф. преломления, а ior_max = ior_min + коф. дисперсии.
Далее идут коф. составляющих цветов, с ними сложнее. Во первых цвета представлены не палитрой RGB, а чем то похожим на CMYK. А во вторых величина этих коф. учитывается криво. Если посмотреть листинг шейдера ( шейдеры пишутся на С++) то можно увидеть что весовые доли цветов могут быть от 0 (нет цвета) до 1 ( полный цвет), ну и значения между ними с шагом в 0,2, но потом это все пересчитывается с добавлением разных параметров и в результате полностью убрать какую-то составляющую не получиться (а было бы удобно для определенных цветных минералов) к тому же для малых коф. дисперсии некоторые значения составляющих могут вызвать ошибку рендера.
В итоге если нужно подправить спектр для, например, бледно желтого минерала в сторону желтого – ставим коф. 1,0,0, а вот для насыщенного однотонного цвета мы коф. выставить не сможем хоть выставлять огромные отрицательные значения L. Но у нас материал прозрачный и не цветной, поэтому оставляем 1,1,1.
Все, материал у нас готов, можно его применять на пирамиду ( можно просто мышкой перетащить шарик с материалом на пирамиду, но грамотнее выделить пирамиду и нажать в окне материалов кнопку ). Если на сцене много объектов, и все они имеют собственные имена, то удобнее выделять нужный, не на сцене (где он может быть спрятан) а нажав клавишу «H» и выбрав из списка.
Делаем рендер сцены (F10 и внизу кнопку Render, или сразу нажать сочетание Shift+Q) при этом окно которое мы хотим обсчитать должно быть активно (желтая \по умолчанию\ рамочка вокруг окна) если не выделено окно проекции, то просто на нем щелкнуть RM.
Что мы имеем:
Голубая стрелка это направление света, основной поток света (желтая стрелка), который преломился в призме( по краям явно видно разложение спектра) и несколько слабых потоков от переотражений внутри пирамиды, а так же цветные пятнышки от скошенных граней. В общем что и требовалось. Если увеличить дисперсию на материале, то разложение на спектр будет намного сильнее.
Если у Вас нет похожей картинки, поперемещайте источник света, возможно неудачное расположение. Если и после этого не добиться результатов, нужно проверить включена ли пирамида в обсчет каустики, включена ли каустика на рендере и стоит ли галка на автоматическом расчете эффектов для источника света см. выше.
ПРИМЕЧАНИЕ: если присмотреться к пятну света выходящему из пирамиды, то можно заметить что пятно не чисто белого света, а состоит из отдельных цветных точек. При этом увеличивая количество фотонов на источнике света, мы от этого не избавимся и чисто белый свет не получим. Объясняется это тем, что на световое пятно шейдером накладывается карта шума(на каждую составляющую), которая имитирует легкую интерференцию в потоке света. У нас сейчас пирамида освещается источником света с параллельными лучами, этакий гипотетический белый лазер и в результате получается заметный шум ( присмотритесь к пятнышку от лазерной указки, там тоже будет шум- спеки). Когда сцена будет освещаться другими источниками( Target Spot, Omni), этот эффект сведется к минимуму.
Продолжаем усовершенствовать материал:
Многие минералы, особенно драгоценные камни, имеют высокую отражающую способность, гораздо большую чем у стекла, который мы используем (glass(lume)) и повысить на этом материале мы ее уже не сможем (там и так стоит 1).
Потому создадим еще один материал – зеркальный, а потом сделаем смесь из получившихся.
Выделяем новый материал в редакторе и назначаем ему материал из основной библиотеки – Arch&Desing:
Обзовем его для удобства – «отражающий» и поставим свойства отражения и прозрачности максимальные (=1), коф. преломления – тот который хотим для нашего случая:
Спускаемся ниже и редактируем функцию отражения, увеличивая значения отражения для света, подающего под маленькими углами:
На этом все. Применив материал на пирамиду и сделав обсчет, увидим следующее:
Практически весь свет отразился от первой грани и ребер – то что надо.
Теперь делаем смесь из двух материалов. Для этого понадобиться вспомогательный материал Blend.
Выделяем третий свободный материал и назначаем ему Blend:
В свойствах этого материала мы видим два слота для смешиваемых материалов и третий слот для маски смешивания.
Нажимаем первый материал и связываем его с материалом Горный хрусталь. Справа кнопка которая показывает текущий материал, сейчас он стандартный, нажимаем ее, открылся браузер, укажем что мы хотим взять образец материала из редактора – переключим флажок с NEW на mtl Editor. И укажем наш материал:
После чего Макс спросит - хотим ли мы получить копию материала или зависимый материал, нам нужен зависимый, чтобы исправлять параметры только у родительского материала, а зависимые сами будут правиться.
Далее аналогично ставим отражающий материал во второй слот.
Теперь маску. Я использую для маски смешивания градиент, в нем можно получить неравномерное смешивание, но сейчас мы с помощью градиента смешаем материалы равномерно, в принципе можно использовать и карту спада\затухания – Falloff. Потом можно будет испробовать самостоятельно разные варианты.
Итак. Жмем на слот с маской и выбираем карту Gradient Ramp, не забыв указать что мы используем новую карту, а не берем ее из редактора:
На карте градиента удалим лишний (в данный момент) ключ (ползунок) а щелкнув на крайних установим темно серый цвет:
Чем ближе к белому - тем больше действует второй материал (отражающий) и наоборот. Тем самым мы можем регулировать доминирование одного или другого материала. Сейчас установим для хрусталя доли цветов равным от 8 до 12, для алмаза, например, нужно в районе 90-120.
Остался последний штрих:
Если на сцене лежит один камушек, в гордом одиночестве, окруженный пустотой, то выглядит он «невкусно» - отражать нечего, преломлять нечего, кроме стола и света. Поэтому добавим ему искусственное окружение (для сцен с большим количеством объектов, это в принципе не так актуально , но у нас то одинокая пирамида).
Берем еще один свободный материал и назначаем ему растровую карту Bitmap.
Будет предложен диалог открытия файлов с картинками – выбираем по вкусу. Я использовал подготовленную карту окружения имитирующую помещение.
Далее нужно указать в настройках карты, что она будет использоваться как окружение и располагаться сферически вокруг объекта:
Карта готова, теперь подключим ее к материалу. Открываем материал Горный хрусталь и находим шейдер окружения(Environment), жмем и подключаем Максовский шейдер окружения:
Далее в свойствах назначенного шейдера подключим нашу карту окружения, для расчета цветовой гаммы.
Теперь все готово. Можно сохранять готовый материал в библиотеку (кнопка ) дабы больше его не создавать с нуля и не занимать место в редакторе( всю библиотеку потом тоже можно сохранить в отдельный файл).
Результат обсчета:
Теперь можно сделать модели граненых камней и использовать их с созданным материалом.
Необходимо учитывать, что для разных видов драгоценных камней, существуют определенные огранки, рассчитанные на коф. преломления определенного камня. Если алмаз огранить в форму для изумруда, то красивой игры света мы не получим. Практически все формы огранки давно рассчитаны и даже носят свои названия. Учитывайте это при создании модели камня.
Теперь ПОДВОДНЫЕ КАМНИ:
- Для разных освещаемых объектов необходимо настраивать энергию света : свойство Energy в закладке mental ray Indirect Illum. данного источника света (не путать со свойством Multiplier) чем больше энергия, тем светлее выходящий луч (а основное первоначальный свет остается прежним).
- Иногда световое пятно от вышедшего луча состоит из отдельных кружочков (это заметно от всенаправленных источников)- это говорит о малом числе фотонов в луче – необходимо увеличить их количество: свойство Photon в той же закладке.
- Для получения эффекта дисперсии можно использовать только источники чисто белого света, в противном случае шейдер перестает работать.
- Использование точных физических параметров не всегда дает красивую картину, иногда нужно жертвовать физикой перед искусством – если хотите чтобы на вашей картинке камушек заиграл радужными цветами – завышайте дисперсию. Красота требует жертв.
Осталось кратко остановиться на отдельных особенностях и цветных минералах.
С одной стороны для них можно использовать материалы стекла из библиотеки Макса, исправив только коф. преломления:
Рубин, сапфир – 1,766
Турмалин - 1,616
Изумруд, бериллы – 1,570
Аквамарин – 1,577.
Но с другой стороны, у этих минералов огромное количество характерных только им свойств, что все описать в рамках одного урока невозможно.
Например
1. двойной коф. преломления, когда луч расщепляется в минерале на две части и у каждой части свой коф. дисперсии. Это кальцит и какая-то ( уже не помню) разновидность шпата. Для них придется создавать композитный материал из двух смешанных с разными коф. преломл и коф. дисперсии. Получится что-то вроде этого:
2. Есть минералы с прозрачностью не «чистой воды» , содержащие либо некоторые примеси, либо с дефектами в кристаллической решетке. Этот эффект настраивается путем изменения параметров – размытее прозрачности, размытее отражения, в материале стекла. А параметр Translucency (полупрозрачность) делает материал односторонне прозрачным, такое может пригодиться для камня, который покрыт снизу специальной отражающей краской.
3. Существуют цветные минералы, но тем не менее у них можно увидеть эффект дисперсии в определенном диапазоне спектра. Например рубин, красный минерал, но присмотревшись внимательно к светлому пятнышку, от проходящих через него лучей, можно заметить области с фиолетовым смещением. что-то вроде этого:
Достигается путем замены шейдера фотонов на Максовский шейдер для диэлектрического материала, и установкой его цвета в фиолетовый, тогда на максимально светлых пятнах будет доминировать фиолетовый цвет – то что и надо.
Более того рубин сам начинает испускать свет под воздействием внешних источников, попробуйте внести кольцо с рубином в помещение освещенное, так называемой Black Light лампой (используются на дискотеках и детекторах валют) , рубин будет довольно ярко светиться розовым или фиолетовым цветом (в зависимости от минерала). Достигается это легко, либо осветить камень дополнительным источником, исключив остальные, не забыв потом включить GI, либо свойство Илюминейшн.
5. Есть так называемый эффект плеохроизма, когда камень меняет свой цвет в зависимости от угла зрения, этот эффект можно добиться путем применения цветной карты затухания на диффузное отражение.
ИТД…
Но по большому счету это не сильно важно и можно использовать обычное стекло для имитации любого камня, регулируя прозрачность, цвет, отражающую способность и IOR.
Ну и еще правильно осветить.
Последок повторюсь: для того чтобы подчеркнуть красоту камня необходимо сильно завышать некоторые физические характеристики, в реальном мире не все минералы смотрятся так эффектно, как их рисуют и описывают:
На этом все.
Надеюсь кому то урок помог освоиться в прозрачных материалах 3D Maкса. Прошу прощения за некоторые вольные трактовки терминов и не вполне профессиональное описание, урок писал не специалист, а любитель.
С уважение КАА.