Создание текстиля с помощью процедурных текстур

Здравствуйте. Меня зовут Ярков Дмитрий. Я живу в городе Екатеринбурге и работаю моделлером и визулизатором на проекте DO ROOM. Я использую 3ds Max и VRay и сегодня хочу познакомить вас с созданием материала вот такой зеленой ткани:

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

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

Я использую гамму 2,2. В общих чертах, она позволяет легче настроить теневые участки за счет смещения градаций светлости влево по шкале "черное-белое". Чтобы ее включить, зайдите в меню Customize->Preferences, перейдите на вкладку Gamma and LUT и поставьте настройки, как здесь:

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

Во-первых, особо густые вкрапления точек идут вдоль краев объектов, особенно там, где поверхность вогнута и соприкасается с другой поверхностью (например, деревянными ножками). Точки там настолько близко расположены, что создают общую бледно-зеленую массу. По мере удаления от краев, плотность точек падает.

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

Начнем создавать материал. Открываем редактор материалов и создаем материал VRayMtl. Щелкаем на слоте справа от Diffuse и добавляем в него карту VRayDirt.

Что делает эта карта - уже все, наверное, знают. Грубо говоря, она применяется для создания "грязи" в углах и по краям объекта, при этом реагирует на любые пересечения или просто близко расположенные объекты. Вот демонстрация ее использования:

Как видите, основной цвет объекта - серый, но в местах пересечения с другими объектами он меняется на красный. Во втором случае стоит галочка Invert Normals, поэтому все наоборот. Нам эта карта понадобится для уплотнения массива точек на краях объектов. Параметры поставьте, как на рисунке:

Radius - задает величину распространения "грязи" от краев объекта к его центру. 30 см не так уж много: большая часть этого расстояния скроется картой, которую мы наложим.

Subdivs - задает качество дирта. При низких значениях будет шуметь.

Задаем цвета Occluded Color и Unoccluded Color. Первый - это наши точки, он будет бледно-зелено-голубой. Второй - основная масса ткани, будет темно-зелено-голубая. Можно отрендерить.

Что мы видим? Карта VRayDirt послушно поменяла цвет объекта с краев. Но пока что все слишком ровно, и теперь мы должны наложить на нее карту, чтобы появилась желанная неоднородность.

Теперь пора снова взглянуть на фотографию. Мы видим, что существует как минимум два уровня масштаба неоднородности. Первый - это мелкие бледные точки, перемежающиеся с темной массой ткани. Второй - это более крупные темные пятна, словно бы стирающие любые точки на своем пути:

Двигаться следует от большего к меньшему. Начнем с больших темных пятен. Идем в слот Radius и кладем туда карту Mix. Это, я думаю, классическая всем известная карта, позволяющая смешивать два цвета/карты по черно-белой маске. Цвета оставляем по умолчанию (черный-белый). В качестве маски (слот Mix Amount) кладем процедурную карту Planet. Чем хороша эта карта: она содержит большое количество цветов (8), которые можно весьма разнообразно смешивать. Вообще, эта карта, исходя из названия, предназначена для имитации поверхности планет из космоса: в ней есть три цвета для воды и пять цветов для материков и островов. Минус в том, что на эти цвета нельзя положить карты. Но мы обойдемся без них. Настройки ставим как у меня здесь:

Поскольку текстура процедурная, настраивать UVWMap на объектах или делать развертку не нужно. Теперь возвращаемся к карте VRayDirt и снижаем процент влияния карты Mix до 97 (число справа от слота). Это позволит нам получить более четкую бледную полоску у границ объектов. Рендерим:

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

Настроек немного, поэтому разобраться легко. В нашем случае важными являются Size (размер текстуры) и Threshold (соотношение темных и светлых пятен). Рендерим:

Какие симпатичные точечки! Но почему их нет с внешних краев объекта (например, подушек)? С этим разберемся позже. На этом заканчиваем работу со слотом Radius и возвращаемся в корень VRayDirt. Теперь попробуем несколько разнообразить эти пятна, а то они слишком уж однородные. Кидаем в слот Occluded Color карту Smoke. Суть та же, что и у Stucco, просто немножко другой алгоритм. В оба слота кидаем еще по такой же карте. Вот настройки всех трех:

Как видите, карта большего размера включает в себя две карты меньшего размера, с разным уровнем яркости. Рендерим:

В целом стало чуть темнее, но это не беда - скоро исправим. Зато появилась дифференциация яркости, которую при желании можно усилить.

Давайте добавим белых пятен с внешних границ объектов. К счастью, это несложно. Возвращаемся на самый первый уровень материала, нажимаем правой кнопкой по VRayDirt и выбираем "Copy". Теперь переходим в этот VRayDirt, щелкаем правой кнопкой по единственному оставшемуся слоту Unocludded Color и жмем "Paste (Copy)":

Настройки второго VRay Dirt оставляем такие же, только ставим дополнительную галочку Invert Normals. Это позволит добавить наших точек не только с внутренних, но и с внешних краев объекта. Рендерим:

Отлично! Количество точек возросло вдвое, а их суммарная яркость увеличилась. Теперь возвращаемся к описанию материала: "на открытых и плоских участках поверхности точки тоже есть, но их плотность меньше и они гораздо бледнее".

Ок, в нашем новом VRayDirt как раз для этого есть свободный слот Unocludded Color. Кидаем в него уже знакомую карту Mix с текстурой Planet. Параметр Continent Size меняем на 9,0 - пусть текстура будет в 4 раза больше предыдущей.

Первый цвет Mix делаем темно-зеленым, ну как основная ткань. Во второй слот кидаем Stucco, а в него - две Smoke с такими настройками:

Рендерим:

Замечательно! У ярких массивов на фоне появились зеленые разводы. В целом, диффузная текстура выглядит теперь интересной и разнообразной. Вот как выглядит ее иерархия:

Одинаковыми цветами я выделил инстансные карты - две Mix и две Smoke. На этом с диффузной текстурой закончим.

Переходим в корень нашего материала. Не забудьте сохраниться - не дай бог, вылетит. Приступим к бампу. В принципе, ничего сложного в нем нет. Просто копируем нашу карту из слота Diffuse в слот Bump (методом Copy!) и делаем все встречающиеся цвета в нем черно-белыми (просто понижаем до нуля Saturation) - для большего контроля. Самые темные цвета (основная масса ткани) я сделал полностью черными, но это необязательно.

Возвращаемся в корень материала - теперь сделаем отражение. Не следует им пренебрегать - даже самый матовый материал отражает свет. Кирпич, бумага, ткань - любая поверхность. Вопрос только в силе отражения и его размытии. В нашем случае отражение очень размытое, да так, что собственно отражения и нет - остается только блик от источников света. Для таких случаев я применяю фейк. Идем во вкладку Options и отключаем параметр Trace Reflections. Теперь можно сколько угодно повышать силу отражения - его не будет, а вот блик останется:

Копируем нашу карту - на этот раз из бампа в рефлект. И тут нужно внимательно следить за цветами. Наше отражение зеленоватое, и оно должно быть контрастным. Первым делом отключите карту Unoccluded Color у последнего VRayDirt и поставьте вместо нее черный цвет - нам не нужно бликов на фоне. Осталось поменять только карты Smoke на Occluded Color обеих VRayDirt. Если вы еще не сделали их инстансными, сделайте сейчас: скопируйте Smoke с одного VrayDirt и вставьте в другой методом Paste (Instance). Теперь измените цвета карт на следующие:

Как видите, яркие зеленые цвета чередуются с полностью черными. В итоге получится контрастное отражение. Идем в корень материала и меняем параметр Refl. glossiness на 0.64 - сильно размытый блик. Финальный рендер!

Яркость пятен, попавших в зону блика, сильно увеличилась - хороший плюс к интересности материала! Материал ножек сделан по схожему принципу, останавливаться на нем не будем.

Итоговая иерархия материала:

В итоге получился достаточно сложный материал без единой растровой текстуры. Использование процедурных карт - большой плюс. Во-первых, это полная независимость от размера текстуры: процедурные карты не имеют пикселизации. Во-вторых, это отсутствие необходимости делать развертку. В-третьих, это очень гибкая система: можно в любой момент добавить более мелкие и более крупные детали на любом уровне детализации. Кроме того, наш материал очень легкий в изменении цвета. Достаточно лишь ввести новое значение Hue (Оттенок) в каждой ячейке - и новый цвет готов. Также можно контролировать цвета каждого уровня детализации. При желании, можно сделать их еще более неоднородными.

Результирующий материал можно скачать здесь.

Всем спасибо:)

783 0 850 68
45
2009-03-18
Спасибо!
2009-03-18
Интересный материал получился. Покрасить его в коричневый цвет и будет прикольный драный кожаный диван.
2009-03-18
Хороший урок, может вы мне скажете по какой причине может не работать карта дерт, или не проявлять выставленый радиус (скажем вместо выставленных 1000 будет 50 максимум)?
2009-03-18
eggor, покажите картинку? Причиной может быть, например, карта на радиусе. Так же можно попробовать увеличивать параметры распределения по X, Y или Z-осям.
2009-03-18
Полезный урок в копилку уроков [smile=04]!!!
2009-03-19
Урок супер. Как только это все запомнить и научиться использовать без подсказок!
2009-03-19
Хороший урок! :) Вот только блики на финальной картинки всё портят, была ткань а стал мрамор и пластик )) или glossiness ещё меньше бы сделать
2009-03-19
MikeMS, на других фотографиях с этой тканью она бликует так же [smile=17]
2009-03-20
ИЗВИНИТЕ ЧТО НЕ СОВСЕМ ПО ТЕМЕ ДМИТРИЙ, НО У МЕНЯ ВОЗНИКЛИ ПРОБЛЕМЕ НА ВАШЕМ САЙТЕ DO ROOM, Я ПЫТАЮСЬ ЗАРЕГИСТРИРОВАТСЯ ТАМ НА ПРОТЯЖЕНИИ НЕСКОЛЬКИХ МЕСЯЦЕВ, НО ПОЧЕУ ТО ПОСТОЯННО ПИШЕТ ВВЕДЁН НЕВЕРНЫЙ КОД, ХОТЯ ВВОЖУ ЕГО ПРАВИЛЬНО И ТАКИЕ ПРОБЛЕМЫ ВОЗНИКЛИ НЕ ТОЛЬКО У МЕНЯ...сПАСИБО ЧТО ВЫСЛУШАЛИ, НАДЕЮСЬ ЧТО ТО МОЖНО С ЭТИМ СДЕЛАТЬ, ЕСЛИ НЕТ ТО ЖАЛЬ, ОЧЕНЬ УЖ У ВАС ХОРОШЫЕ МОДЕЛЬКИ НА САЙТЕ, СПАСИБО ЗА ПОМОЩЬ ЗАРАНЕЕ)
2009-03-20
Видимо урок очень хороший но то что тема актуальна и очень необходима для многих не возникает сомнений. Я его пока не опробовал. А некоторая искуственность на финальной картинке это из за гаммы 2,2 и автора винить не вчем. Я сколько не наблюдал картинок выполненных в этом режиме замечаю некоторую восковатость в изображениях. А на счет урока 5! баллов!!!
2009-03-20
Koleso, проблема с регистрацией давно исправлена. Попробуй нажать Ctrl+F5 Onyfriyenko Stas, насчет гаммы вы не правы, искуственность потому что это рендерилось в универсальной студии, сделанной специально для потокового производства. Рендер примера в другой студии можно посмотреть здесь: [url]http://www.ljplus.ru/img4/b/l/blackagate/Misterius.jpg[/url] Всем спасибо за хорошие отзывы)
2009-03-20
Правда, урок хороший, особенно для начинающих.
2009-03-20
Намудрил Автор, конечно, но тут больше "МУДР", чем "на". Голову сломаешь этот материал изучать :) 5+/5+
2009-03-20
Спасибо) Да, выглядит сложно, но суть состоит в том, чтобы идти от большего к меньшему (кстати, можно и наоборот). Я ведь тоже не сразу все эти Stucco и Smoke поставил) Все последовательно, изучая получившийся рендер после каждого изменения.
2009-03-20
Тоже люблю процедурные материалы :) 5/5
2009-03-21
сделайте так как на картинке, а для чего не понятно =( повторять и жмакать "как на картинке" и не понимать конкретно для чего это - новичкам будет трудновато
2009-03-21
Да я вроде все наоборот, все объяснил. Покажите, что непонятно)
2009-03-23
А с огурцом был круче!
2009-03-23
А у меня длиннее! [smile=06]
2009-03-24
Очень хорошо! Немного избыточно, имхо, с Планетом и Дёртом, но результат есть :)
2009-03-24
LevaLeva, спасибо большое) равняюсь на тебя)
2009-03-24
Жесткий Урок!!!!!!!!!! 5/5 без коментариев
2009-03-26
Урок на 5+. Актуальность 5+.
2009-03-31
Урок конечно хороший в плане саморазвития, но в итоге материал совсем не похож на тот, который нужно было создать
2009-03-31
Ну сделайте свой и покажите, буду рад)
2009-04-03
Иногда поражаюсь слишком сложным путям. В целом результат адекватен, не хватает разве ощущения бархатистости дополнительно, мягкости, какой то он затёрто-засаленный в итоге вышел, не кажется? Огромный минус такого подхода "без развёртки" состоит в том, что если эта модель понадобится с другой тканью, да ещё и в другом пакете, ну например Cinema, Softimage, то все процедурки уже никак туда не затянешь, только если переводить их в maps каждую, потом тайлить дополнительно PixPlant например, и потом в этих пакетах попытаться воссоздать такую же иерархию мата. Долгий путь. Но в данном случае мат плюша пожалуй самый непростой материал, и в принципе достойное решение конкретно для макса. Молодец.
2009-04-15
Просьба к автору - пожалуйста, если не сложно, сделайте анимацию поворота данного дивана в каком нибудь окружении (хочется на динамику "переливаний" посмотреть - сам бы я повторил, но просто времени нет) ps Спасибо, хороший урок.
2009-04-15
_Recruit_, все уже сделано) Смотреть [url=http://www.doroom.ru/brands/factories/Bruno_Zampa/models/Misterious_Sofa]здесь[/url]
2009-06-10
Спасибо, полезный урок. А хотелось бы еще про бахрому на подушках.Можно? Заранее благодарна
2009-06-15
Очень реалистично)
2009-08-20
это все конечно офигенно до безумия)), меня интересует вопрос: Как люди доходят до такого уровня знания???? я в шоке))) спасибо!!!
2009-08-20
Та фигня... Нужно просто попасть в хорошую компанию) Виртуальную либо реальную. Там уж как-то сам научишься.
2009-08-20
просто текстурирование и все это "материаловедение" для меня пока (надеюсь что пока) - темный лес, наверно самое трудное для меня в компьютерной графике. Как вообще определяется какой именно материал взять за основу, потом на его карты как еще материалы назначить, и т.д. и т.п... мне наверно надо тыщу уроков по созданию материалов просмотреть что дойти до материала из ТАКОГО количества слоев))
2009-08-20
Да ну их нафиг, эти слои... они сами собой получаются, потом не знаешь куда деваться [smile=06]
2009-09-22
материал красив, урок хорошо написан, даже отлично, мне понравилось) Larisia, посмотрите урок по меху, как я понял на данном диване бахрома была сделана как раз фуром
2009-10-30
+5+5_Что нибудь попробую сделать со своими стенами на основе прочитаного. Я там (роддом) по композиции и свету вариант выложил на W.I.P. (Work In Progress) важно узнать Ваше мнение это здесь: http://www.render.ru/forum/viewtopic.php?post_id=783524#783524
2009-12-19
Подскажите, пожалуйста, почему во vray dirt игнорируется occluded color? Этот цвет никак не проявляется при рендере.
2009-12-19
Его проявление зависит от угла и расстояния между поверхностями. Усилить можно, например, положив несколько диртов один в другой.
2010-02-04
У меня тоже пробелма была что не отражается врей дирт! Чтобы решить проблему - в настройках Global включить галку на Filter maps for GI . Всьо заработало у меня! Думаю вам тоже поможет.
2010-04-06
молоцом Дим!
2010-07-08
Вот теперь надо подобное для mental сочинять))
2010-11-27
Классный урок! Но что-то не могу в 2011 максе карту Planet найти .....=(((( не подскажете как быть? нету её!!!!!!!!
2010-12-05
Разобрался! Подбрил из готового мата! Спасибо ещё раз за урок!!!!!!!
2010-12-12
А у меня нет карты Planet !!!! Где мне её взять!!!???
2011-02-12
Отличный урок. Спасибо!
RENDER.RU