Биографии Характеристики Анализ

Создание ковра в 3d max vray. Модификатор Hair and Fur

31 июль 2017 Подробности Автор: Долматов Вячеслав Просмотров: 3658

В данной статье рассмотрим процесс создания шерстяного коврика в 3DS MAX с помощью vray fur. После чего, уже обладая начальными знаниями, подробно изучим все возможности vray fur. По мере изложения материала, я буду выкладывать готовые файлы с финальным результатом. Если какие то моменты вызовут у Вас затруднения, то скачивайте их и смотрите, как там все устроено.

Перед тем как начнём, взгляните на возможный конечный результат теоретических знаний, изложенных в данной статье:

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

Зададим единицы измерения, в которых будем работать. Я выбрал сантиметры:

В окне проекции Top создадим Plane (плоскость). Плоскость будет являться полом, на котором будет лежать коврик:

Установим размеры плоскости 5x5 метров.

В окне проекции Top создаём ChamferBox с параметрами, приведёнными на рисунке:

Для освещения сцены создадим сферический источник света VRayLight, со следующими параметрами:

Галочку в поле Invisible следует поставить для того, что бы во время визуализации сцены не было видно источника света, если он попадёт в кадр. Для лучшего освещения я немного поднял источник света над сценой по оси Z и подкорректировал его положение по осям X и Y. Его точные координаты по осям можно посмотреть под шкалой времени:

Что бы координаты подсветились, на панели инструментов следует выбрать инструмент Select and Move.

Если сейчас отрендерить сцену, то увидим плоскость (Plane), на которой лежит коврик (ChamferBox) освещаемый источником света:

Пора делать коврик шерстяным.
На панели Create, в разделе Geometry, из списка выберите VRay. Далее следует выбрать объект VRayFur. Но для того, что бы VRayFur стал активным следует выделить тот объект, для которого он предназначается. В нашем случае это коврик (ChamferBox).

Затем следует нажать на кнопку с надписью VRayFur. После чего коврик покроется шерстью, а в окне проекции появиться объект VRayFur:

Что бы VRay Fur не мешал, можете сдвинуть его в сторону (как это сделал я), на конечный результат это никак не влияет.

Если сейчас визуализировать сцену, то получим некое лохматое существо, мало напоминающее нашу конечную цель:

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

Length – длина ворсинок шерсти;
Thickness – толщина ворсинок шерсти;
Gravity – влияние гравитации на наклон ворсинок к земле;
Bend – изгиб ворсинок;
Taper – заострение ворсинок от начала к концу;
Knots - количество сегментов, образующих ворсинку. Чем выше значение этого параметра, тем ворсинка будет более гладкой, что в свою очередь увеличит время визуализации.

В разделе Variation приведены параметры влияющие на отклонение изначально заданных значений, на указанную величину по случайному закону, потому как невозможно себе представить, что все ворсинки имеют строго одинаковое направление (Direction var), одну и ту же длину (Length var), толщину (Thickness var) и влияние гравитации (Gravity var).

Раздел Distribution предлагает выбрать, каким образом будут распределяться ворсинки по поверхности. Здесь можно выбрать Per face (по грани), или Per area (по площади). Пока установим в положение Per area, но ниже ещё вернёмся к этому разделу и рассмотрим его подробнее, потому как тут есть о чём поговорить.

Визуализируем сцену с приведёнными выше параметрами:

Так уже лучше!

Следующее что предстоит сделать – это назначить материалы.
Открываем редактор материалов (Material Editor), переходим в любой свободный слот, выбираем стандартный материал VrayMtl и в качестве цвета диффузного рассеивания выбираем изображение меха жирафа - meh_zhiraf_1920x1200.jpg (все файлы изображений идут в комплекте с файлом, который Вы скачали в начале статьи):

Назначаем полученный материал объекту VRayFur. Обращаю Ваше внимание, что материал назначаем не коврику (ChamferBox), а именно объекту VRayFur. Для этого выделяем его и жмём на кнопку Assign Material to Selection:

Мех окрасился в шкуру жирафа, но видны проплешины. Эту проблему можно решить двумя способами. Первый способ заключается в увеличении плотности меха (значение Per area), а второй способ состоит в том, что бы назначить коврику (т.е. объекту ChamferBox) точно такой же материал что и объекту VRayFur. Первый способ я не рекомендую использовать, потому как увеличение плотности меха, увеличит время визуализации сцены. Поэтому будем использовать второй метод. Назначим тот же самый материал, что использовали для VRayFur, объекту ChamferBox. Таким образом, мы подкрасили коврик в цвет меха. После визуализации сцены получим следующий результат:

Видно что проплешины исчезли.

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

Уже совсем неплохо, но давайте ещё немного улучшим внешний вид.
Коврик у нас очень ровный, наверное и такое бывает, но всё же в реальной обстановке по коврику ходят, вытирают об него ноги, иногда даже об него спотыкаются, так что вряд ли он может сохранить столь идеальную форму. Если Вы выполняете урок вместе со мной, то на данном этапе рекомендую Вам сохранить сцену, потому как дальше пойдут элементы свободного творчества, которые могут не улучшить, а ухудшить внешний вид коврика.

Наверное, Вы обратили внимание, что создавая коврик (объект ChamferBox) я выбрал немалое количество сегментов по ширине (Width Segs=60) и длине (Length Segs=40). Для абсолютно прямого коврика такое количество сегментов не нужно. Это было сделано для того, что бы имелась возможность плавно изменять геометрию коврика. Под изменением геометрии я имею ввиду образование складок. Что бы получить доступ к вершинам, преобразуем объект ChamferBox в редактируемый полигон, затем при помощи перемещения вершин полигона изменим внешний вид коврика, добавив к нему несколько складок.
Применим к ChamferBox модификатор Edit Poly и перейдём к редактированию вершин:

Маленький совет! При редактировании подобъектов удобно пользоваться цифрами от 1 до 5. К примеру, для редактирования вершин достаточно нажать клавишу с цифрой 1. Попробуйте понажимать цифры от 1 до 5 и увидите, как легко можно переходить с одного подобъекта на другой.

В окне проекции сейчас можно наблюдать вершины достаточно плотно покрывающие объект ChamferBox:

Раскроем свиток мягкого выделения вершин (Soft Selection) и активируем его, установив галочку у параметра Use Soft Selection. Затем следует установить значение параметра Falloff. Данный параметр задаёт степень распространения (влияния) мягкого выделения на вершины, отстоящие от выделенной на заданное расстояние:

Я установил величину Falloff равную 7см. Вы можете выбрать иное значение. Это уже на Ваш вкус. Проще всего установить значение Falloff, если в окне проекции наблюдать как меняется распространение мягкого выделения на соседние вершины относительно выделенной:

Выделим одну из вершин находящуюся у самого края коврика (она является красной точкой) и меняя значение Falloff понаблюдаем как происходят изменения. Теперь создадим на коврике первую складку. Для этого в окне Perspective, захватим ось Z и переместим выделенную вершину вверх на 0,5-1 см. После рендеринга получим следующую картинку:

Первая складка готова.
Проделав подобную процедуру несколько раз на разное расстояние, и меняя значение Falloff в итоге получим коврик со складками:

Что об него вытирают ноги и спотыкаются сказать нельзя, но то что по нему ходят – это уже заметно. Признаться, я здесь не ставил цель добиться фантастического результата, моя задача заключалась в том, что бы показать как это делается. Поэкспериментируйте, с настройками свитка Soft Selection, наверняка у Вас получиться намного лучше. К стати, в свитке Soft Selection есть ещё не мало интересных параметров со своими настройками, которые выходят за рамки данной статьи, но не что не мешает Вам их попробовать.

И ещё! Уж коли речь зашла об экспериментах, попробуйте изменить толщину шерсти, её длину и т.д. Теперь Вы знаете, где и как это можно сделать. Результаты будут весьма интересными!

Если у Вас что то пошло не так, то скачайте готовый файл с финальным результатом на данный момент:

Итак, коврик готов!
Задачу минимум мы выполнили, но в настройках VRayFur осталось немало параметров, которые мы пока не рассматривали, или рассмотрели весьма поверхностно. Пора обратить на них внимание.
Признаться, сейчас я немного вздрогнул от того, что пытаюсь объять необъятное, потому как если подробно описать все возможности VRay Fur, то это потянет далеко не на одну статью. Постараюсь быть кратким, но тем не менее попытаюсь раскрыть как можно больше возможностей VRay Fur.

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

Выделим объект VRayFur и в разделе Placement установим галочку возле параметра Selected faces:

Теперь шерсть будет расти только на выделенных гранях или полигонах. В окнах проекции внешний вид коврика никак не изменился, потому как этот эффект проявляется после визуализации сцены.

Выделим коврик, в панели модификаторов (Modify) перейдём на уровень редактирования полигонов и снимем галочку у параметра Soft Selection, которую мы установили ранее создавая складки на коврике, а у Ignore Backfacing – галочку установим:

Перейдём в окно Top и при помощи инструмента Select Object выделим полигоны как это показано на рисунке:

Галочку у Ignore Backfacing установили для того, что бы при выделении в область выделения попали только верхние полигоны, а нижние из процесса выделения, а значит и из процесса генерации шерсти - были исключены.

Что бы эффект от полученного результата был более заметен, назначим коврику (ChamferBox) материал отличный от меха жирафа, к примеру материал светло-серого цвета и отрендерим сцену:

Видно, что теперь мех расположен только на тех полигонах, которые были выделены. При этом опять появились проплешины, потому как цвет коврика отличается от цвета меха. Если Вы помните, то вначале статьи я обещал вернуться к разделу Distribution, где расположены атрибуты Per face (по грани), и Per area (по площади) и рассмотреть его подробнее. Сейчас мы это сделаем, а заодно и проплешины уберём.

Выделяем VRayFur, переходим в панель модификаторов объектов, ставим галочку у атрибута Per face и в поле ввода введём такое же число, которое мы ставили в Per area - 100:

После рендеринга получим следующий результат:

Проплешины исчезли. Всё дело в том что, установив галочку у Per face, мы тем самым заставили генерировать мех каждому маленькому полигону из которых состоит коврик с коэффициентом 100, в то время как такое же количество меха ранее генерировал весь объект. Очевидно, что плотность меха на единицу площади возросла и проплешины исчезли.

На мой взгляд, использование выделенных полигонов, является весьма экзотическим способом генерации шерсти и я его никогда не использую. Поэтому хочу Вам предложить иной способ. Он основан на присвоении определённой группе полигонов своего идентификационного номера (ID) и назначении материала каждой группе полигонов в соответствии с присвоенным ID.

Перед тем как двигаться дальше следует вернуть коврику материал шкуры жирафа. А свитке модификаторов объекта VrayFur вернуть галочку в положение Per area. Сделайте это.
Затем в окне Top при помощи инструмента Select Object выделим полигоны как это показано на рисунке:

Визуализируем сцену:

Видно, что мех расположен на тех полигонах, которые были выделены. А на бордюре коврика меха нет, но он окрашен в цвет материала шкуры жирафа, что совсем не радует глаз. Исправим этот недочёт.
Пока полигоны остаются выделенными (если это не так, то выделите их снова) переходим в самый конец свитка редактирования полигонов и в поле Set ID присвоим значение ID для выделенных полигонов равное 2-м, поле Select ID трогать не нужно, оно измениться автоматически:

Затем в редакторе материала перейдём в любой свободный слот и создадим материал Multi/Sub-Object. В качестве материала с идентификатором ID = 1 создадим стандартный материал VrayMtl у которого в качестве диффузной карты рассеяния выберем ткань, а для материала с идентификатором ID = 2 назначим уже имеющийся материал шкуры жирафа (перетащив его с зажатой левой кнопкой мыши на вторую позицию материала Multi/Sub-Object:

Назначим полученный материал коврику и отрендерим сцену:

Теперь те полигоны, которым назначен материал шкуры жирафа (ID=2) – генерируют шерсть, а полигоны, которым назначен материал ткани (ID=1) превратились в кайму коврика.
При этом весь шерстяной покров расположен только сверху, а значит при визуализации сцены, не будет затрачиваться время на генерацию и рендеринг шерсти, которая не видна.

Скачайте файл с финальным результатом:

Свитки Maps.

Для изучения свитков забудем про коврик, он нам больше не понадобиться.
Создадим прямоугольник, вырастим шерсть на его верхнем участке и посмотрим на поведение её ворсинок в различных окнах проекции в зависимости от того, какую карту из свитка Maps будем применять. Правда на сей раз шерсть куда больше будет походить на траву, потому как для того, что бы все изменения были хорошо видны, длину шерсти придется сильно увеличить. Так что если Вам так будет понятнее, то считайте шерсть травой. Это значения не имеет.
Руками Вам делать ничего не нужно. Старайтесь провести мозговой штурм и вникнуть в суть написанного, потому как карты VrayFur устроены так, что не очень просто во всём разобраться. Я имею ввиду карты RGB. В mono картах все устроено проще.

Как Вы уже поняли в свитках Maps имеется два вида карт: RGB и mono. В RGB применяется цветное изображение, в mono применяются чёрно-белые цвета.

Карты RGB.

Bend direction map – задает направление изгиба ворсинок шерсти в зависимости от интенсивности цветовых каналов RGB. Изгиб плавно распределяется по всей длине ворсинок.
Следует не забывать, что при визуализации сцены, финальная величина изгиба зависит не только от влияния карты Bend direction map, но и от настроек заданных в параметрах VrayFur:

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

Для того, что бы понять как организован процесс влияния карты на конечный результат, следует помнить что ориентация изгиба, привязана к цветовой гамме осей принятых в 3D Studio Max.

Ось X – имеет красный цвет
Ось Y – имеет зелёный цвет
Ось Z – имеет синий цвет

Соответственно, в трёхмерной системе координат:

Изменение интенсивности красного цвета влияет на изгиб ворсинок по оси X (влево/вправо);
- изменение интенсивности зелёного цвета влияет на изгиб ворсинок по оси Y (вперёд/назад);
- изменение интенсивности синего цвета влияет на изгиб ворсинок по оси Z (вверх/вниз);

Для понимания влияния цвета на изгиб ворсинок, следует наблюдать за процессом как минимум в двух окнах проекции. Для полноты восприятия мы будем использовать три окна Front, Right и Perspective. Поскольку влево/вправо, вперёд/назад, вверх/вниз в 3D графике понятия весьма относительные, тут всё зависит от того, из какого окна проекции наблюдать за процессом, то в качестве точки отсчёта я выбрал окно Front.

Главное что Вы должны понять, это то, что именно считать нулевой точкой отсчёта при изгибе. Хорошо известно, что при изменении трёх значений цветовой палитры (RGB) можно получить любой цвет. Значения цветовых составляющих меняются от 0 до 255. И если, к примеру, потребуется изменить изгиб ворсинок по оси X на максимальное значение вправо, то логично было бы предположить, что для этого следует изменить значение красного цвета с 0 до 255. Но в таком случае, возникает вопрос, а как же тогда менять изгиб влево? Ведь все возможности по изменению цвета были уже использованы! Здесь нужно понять, что в карте Bend direction map, за нулевое значение принимается середина цветовой палитры каждой составляющей цвета. Ниже приведены цветовые палитры, для стандартного RGB цвета и для режима применяемого в настройках карты Bend direction map:

Видно, что при стандартном использовании цвета в любом цветовом канале цвет изменяется от 0 до 255. При этом значение 128 является серединой. Вот эта самая середина и является нулевой точкой отсчёта при использовании карты Bend direction map, где влияние цвета на конечный результат - минимально. Теперь становиться понятно, что для максимального изменения наклона ворсинок вправо, следует установить значение красного цвета на максимум возможного, т.е. в установить значение +127. Если потребуется максимальный наклон влево, то значение красного цвета следует установить в позицию -127. Для зелёного и синего цвета – аналогично. К этому нужно привыкнуть, потому как на экране дисплея будет видно что значения меняются от 0 до 255, а то что в карте Bend direction map значение 128 является нулевой точкой и изменения происходят при отклонении влево и вправо от неё - следует держать в уме.

С теорией разобрались, теперь займёмся практикой.

Скачайте исходный файл, если желаете исследовать карту Bend direction map вместе со мной.

Выделим объект Vray Fur, перейдём в панель модификаторов и назначим для Bend direction map карту VrayColor:

Что бы получить доступ к параметрам, перенесем карту VrayColor (зажав левую кнопку мыши) в свободный слот редактора материалов как образец (Instance):

По умолчанию значения всех цветовых каналов равны 0,5 (RGB = 128) т.е. половине от всего цветового диапазона. Значит на данном этапе выставлен тот самый ноль, про который речь шла выше и влияние карты на конечный результат изгиба будет минимальной (но оно все таки будет, если отключить карту, то положение ворсинок будет иным).
Визуализируем сцену и получим следующий результат:

Вы сейчас видите значения RGB = 128, но Вы должны помнить, что для карты Bend direction map - это означает 0. Поэтому влияние цветовых каналов на результат – минимальный.

Кликнем по параметру color карты VrayColor, и в открывшейся палитре цветов изменим значение красной составляющей до 180 и снова визуализируем сцену:

В окне Front хорошо видно, что ворсинки изогнулись вправо вдоль оси X, потому как мы увеличили красную составляющую относительно нуля. Снова изменим значение Red, уменьшив его до 70 и отрендерим сцену:

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

Теперь исследуем влияние зелёного канала. Вернём красную составляющую в нулевое положение (R = 128) и увеличим значение зелёной до 180. Отрендерим сцену и получим следующий результат:

В окне Right видно, что при увеличении зелёной составляющей, ворсинки отклонились вправо (вперёд). Уменьшим зёлёный цвет до 70 и визуализируем сцену:

Сейчас в окне Right ворсинки отклонились влево (назад).

Теперь исследуем влияние синего канала. Вернём значение зелёной составляющей в нулевое положение (G = 128) и увеличим значение синей до максимально возможного, равного 255. Отрендерим сцену и получим следующий результат:

Поскольку влияние красного и зелёного каналов сейчас минимально, то отклонений влево/вправо и вперёд/назад практически нет. А максимальное значение синего канала отвечающего за направление вверх/вниз заставило шерсть подрасти (вытянуться) вверх до максимума. Уменьшим влияние синего канала до минимального и получим следующую картину:

Как и ожидалось – шерсть прильнула к земле.

Initial direction map – карта, определяющая начальное направление роста ворсинок. В отличие от предыдущей (Bend direction map где изгиб плавно распределялся по всей длине ворсинок), здесь направление задаётся только в самом начале роста ворсинки шерсти. Далее ворсинки шерсти растут в указанном направлении и по всей своей длине никак не изменяются. Если вместо шерсти представить траву, можно сказать, что травинка получает заданное картой направление у самой начальной точки роста (там где трава соприкасается с землёй) и получив направление – растёт в этом направлении. Все вышеприведённые рассуждения (для карты Bend direction map), о том где расположена нулевая точка отсчёта и как связаны направления отклонений по осям - справедливы и для Initial direction map. Поэтому здесь уже не будем погружаться в теорию, а сразу перейдём к практике.

Скачайте исходный файл, если желаете исследовать карту Initial direction map вместе со мной.

Тем же способом, как мы это делали раньше, назначим для Initial direction map карту VrayColor и визуализируем картинку с нулевыми параметрами влияния карты на конечный результат:

Пока ни каких изменений направления роста ворсинок не наблюдается.

Изменим значение красной составляющей до максимального значения R = 255:

В окне Front видно как направление роста ворсинок изменилось (можно даже сказать преломилось) в самом начале их роста и весь пучок шерсти направился расти в правую сторону.

При минимальном значении красной составляющей R = 0:

При максимальном значении зелёной составляющей G = 255:

При минимальном значении зелёной составляющей G = 0:

Синяя составляющая при использовании карты Initial direction map даёт мало-предсказуемый результат. Поэтому здесь её лучше не использовать.

Карты mono.

В картах mono, в отличие от карт RGB, для того что бы наблюдать за процессом изменения параметров шерсти достаточно одного окна проекции. Выберем окно проекции Front, в котором будем наблюдать за происходящими изменениями.

Length map - картa мультипликатор отвечающая за высоту ворсинок шерсти, где абсолютно чёрный цвет - множитель равный 0.0, а абсолютно белый цвет - множитель равный 1.0.

При черном цвете карты высота ворсинок равна 0. При белом цвете карты высота ворсинок равна значению, заданному в поле Lenght.

Thickness map - картa мультипликатор отвечающая за толщину ворсинок шерсти, где абсолютно чёрный цвет - множитель равный 0.0, а абсолютно белый цвет - множитель равный 1.0.

При черном цвете карты толщина ворсинок равна 0. При белом цвете карты толщина ворсинок равна значению, заданному в поле Thickness.

Gravity map – картa мультипликатор отвечающая за влияние гравитации на ворсинки шерсти, где абсолютно чёрный цвет - множитель равный 0.0, а абсолютно белый цвет - множитель равный 1.0.

При черном цвете карты влияние гравитации равно 0. При белом цвете карты влияние гравитации равно значению, заданному в поле Gravity.

Bend map – картa мультипликатор отвечающая за изгиб ворсинок шерсти, где абсолютно чёрный цвет - множитель равный 0.0, а абсолютно белый цвет - множитель равный 1.0.

При черном цвете карты изгиб ворсинок равен 0. При белом цвете карты изгиб ворсинок равен значению, заданному в поле Bend.

Density map – карта влияющая на плотность шерсти. Абсолютно черный цвет карты соответствует нулевой плотности (фактически, в этих областях шерсти нет), а абсолютно белый цвет - представляет собой нормальную плотность шерсти, указанную в параметре Per area.

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

Свиток Viewport display.

Здесь нет ничего сложного. Для того, что бы разобраться как тут всё устроено, достаточно снимать и ставить галочки расположенные в этом свитке наблюдая в окнах проекции за тем что происходит.

Preview in viewport – включает/отключает схематическое отображение шерсти в окнах проекции;

Max. hairs – значение установленное в этом поле показывает максимальное количество ворсинок шерсти, которые будут отображаться в окнах проекции. Уменьшение этого значения снижает время обновления в окнах проекции в случае очень плотного меха.

Icon text – включает/отключает отображение текста VRayFur в окне проекции;

Automatic update - Если этот параметр включён (стоит галочка), то по мере изменения параметров объекта VRayFur, схематическое отображение шерсти в окнах проекции будет автоматически обновляться. Следует не забывать, что в случае очень плотного меха это может замедлить работу компьютера. В этом случае отключите данную опцию, чтобы перейти на режим ручного обновления;

Manual update – кнопка ручного обновления параметров VRayFur. Применяется в том случае, если режим автоматического обновления (Automatic update) был отключён.

Это всё, что я хотел Вам рассказать в данной статье.

VRayFur is a very simple procedural fur plugin. The fur is generated only during render time and is not actually present in the scene.

To create a VRayFur object, you must first select a mesh from the 3ds Max scene, then go to the Create panel, choose the VRay category, and then click on the VRayFur button. Note that if you have not selected an object, or you have selected an object which is not compatible with VRayFur, the VRayFur button will appear greyed out.

||Select geometry|| > Create menu > V-Ray > V-Ray Fur

||Select geometry|| > Create panel > V-Ray list > VRayFur

||Select geometry|| > V-Ray Toolbar > V-Ray Fur button

Parameters

Source object – Specifies the source geometry for the fur. You can click on this button only from the Modify panel (and not from the Create panel).

Length – Specifies the length of the fur strands.

Thickness – Specifies the thickness of the strands.

Gravity – Controls the force that pulls fur strands down along the Z-direction.

Bend – Controls the elasticity of the fur strands. When set to0.0, the strands are hard and all straight lines. Greater values cause the strands to bend (e.g. under the influence of gravity).

Taper – Allows the user to add a taper to the individual strands of fur. Increasing this value will make the each strand thinner in its upper end and wider in its base.

MtlID – Assigns a material ID to the generated hairs. This is useful for applying a Multi/Sub-object material to the fur.

Geometric Detail


Knots – Fur strands are rendered as several connected straight segments; this parameter controls the number of segments.

Lvl of detail – Level of detail. When enabled, V-Ray will generate less fur geometry for parts of the scene which are far away from the camera. This is done by decreasing the density of the fur strands and increasing their thickness. This parameter helps for two things: First, it conserves memory by decreasing the detail where it is too far to be visible. Second, it helps reduce animation flickering of very fine fur strands when they are far from the camera.

Start distance – Specifies the distance from the camera at which V-Ray is going to start implementing the level of detail adjustment. Up to this distance the fur will be generated as specified by the user. After that V-Ray decreases the density and increase the thickness of the strand by a factor of two for every n units of space specified by the Rate parameter.

Rate – Specifies the rate at which the the detail adjustment is applied. Starting from the distance specified in the Start distance parameter, V-Ray decreases the density and increase the thickness of the strands by a factor of two for every n units of space specified by the Rate parameter.

Variation


Direction variation – Adds slight variation to the direction in which fur strands grow from the source object. Any positive value is valid. This parameter should be adjusted according to the scale of the scene.

Length/Thickness/Gravity/Curl var – Adds variation to the corresponding parameter. Values range from 0.0 (no variation) to 1.0.

Distribution

This section determines the density of strands over the source object.

Per face – Specifies the number of fur strands per face of the source object. Every face will generate the specified number of fur strands.

Per area – Specifies the number of strands per squared scene unit. For example, if the the system units are in meters, this parameter specifies the desired number of strands per square meter; if the system units are centimeters, it specifies the number of strands per square centimeter and so on. The area of the triangle faces (which is used to compute the number of strands for each face) is taken at the frame specified by the Ref. frame parameter. Every triangle face has at least one strand.

Ref. frame – Reference frame. When the Distribution parameter is set to Per area , this specifies the frame at which the source object is captured to calculate the face area. The captured data will be used throughout the entire animation to ensure that the number of strands for a given face remains constant during animation.

Placement

Determines which faces of the source object will generate fur strands.


Entire object – All faces will generate fur.

Selected faces – Only selected faces (for example with a MeshSelect modifier) will generate fur.

Material ID – Only faces with the specified material ID will generate fur.

Mapping


Generate W-coordinate – In general, all mapping coordinates are taken from the base object. However, the W mapping coordinate can be modified to represent the offset along the hair strands. When this option is enabled, the W coordinate is the offset along the hair strands (0.0 is the strand base, and 1.0 is the tip). The U and V coordinates are still taken from the base object.

Channel – When Generate W-coordinate is enabled, this parameter specifies the channel for which the W coordinate will be modified.

Curl


Curl – When enabled, adds curls to the fur.

Curl Radius – The radius of the individual curl.

Curl Angle – The number of curls on a strand.

Maps

Base map chan – Some of the texture maps represent vectors in texture space, where the x and y directions are derived from the u and v directions of a texture mapping channel. This parameter specifies which mapping channel is used.

Bend direction map – This is an RGB map which specifies a bend direction of the fur strands in texture space (according to the specified Base map channel). This is the direction in which the fur strands curve to (the amount of curvature is also controlled by the Bend parameter). The red component is offset along the u texture direction, the green component is the offset along the v texture direction, and the blue component is the offset along the surface normal.

Initial direction map – This is an RGB map which specifies the initial direction of the fur strands, in texture space (according to the specified Base map channel). The red component is offset along the u texture direction, the green component is the offset along the v texture direction, and the blue component is the offset along the surface normal.

Length/Thickness/Gravity/Bend map – These maps are multipliers for the corresponding parameters where black is a multiplier of 0.0, and white is a multiplier of 1.0.

Density map – This map is a multiplier for the strand density. Black portions of the map correspond to zero density (effectively no fur will be generated in these areas), and white represents the normal strand density, as specified by the Distribution parameters.

Curl map – This map is a multiplier for the strand Curl. Black portions of the map correspond to no curl, and white represents the set curl, as specified by the Distribution parameters.

Viewport Display

These parameters control the display of VRayFur in the viewports.

Preview in viewport – Turns the preview of VRayFur in the viewports on or off.

Max. hairs – Specifies the maximum number of hair strands that will be represented in the viewport. This lowering this value may help speed up the viewports in the case of very dense fur.

Icon text – Enables and disables the display of the "VRayFur" text in the the view port

Automatic update – When enabled, the viewport preview of the fur will be updated automatically as the source object changes. However, this may slow down the interactive work with the viewports; in this case, turn the option off to disable the automatic update.

Manual update – Click this button to manually refresh the viewport preview when Automatic update is disabled.

Styling VRayFur

It is possible to use vertex color maps to style the fur. A separate tool for this task, VRayFurStyler , can be downloaded from this page:

Notes

  • Avoid applying textures with Object XYZ mapping to the fur. If you need to use a 3d procedural texture, apply a UVW Map modifier to the source object with the option to convert XYZ to UVW coordinates and use explicit mapping for the texture.
  • Avoid having very large triangles covered with fur, since the fur is generated in groups corresponding to triangles of the original mesh.
  • Shadow maps will not include information about the VRayFur. However, other objects will cast shadows on the fur, even with shadow maps.
  • Sharp VRayShadows may produce flickering with VRayFur in animations, because the lighting situation of individual hairs will change very rapidly. Area shadows or VRayLights may produce smoother results.
  • VRayFur will not work with Infinite Plane | VRayPlane as a base object.

Предусмотренный в визуализаторе V-Ray специальный инструмент VRayFur, так же как и стандартный модуль Hair and Fur, позволяет создавать покрытые мехом поверхности, однако по функциональности до стандартного модуля он пока не дотягивает. Дело в том, что смоделированные с помощью этого инструмента шерсть либо мех при визуализации смотрятся не очень впечатляюще, а создать волосы и тем более прически из них и вовсе невозможно. Однако для моделирования травы и разнообразных поверхностей с небольшим ворсом (ковров, махровых полотенец и пр.) VRayFur прекрасно подходит. Более того, в ряде случаев (если речь идет об относительно больших поверхностях на заднем плане) ему даже стоит отдать предпочтение, поскольку просчет созданных в нем меха и шерсти осуществляется на порядок быстрее, чем в случае применения модуля Hair and Fur.

Инструмент VRayFur находится в категории VRay раздела Geometry (рис. 52). Система меха обычно генерируется на базе уже существующей геометрической поверхности (то есть той поверхности, которая должна быть покрыта волосами), хотя можно указать поверхность и после активирования инструмента VRayFur , щелкнув на кнопке Source object (Объект-источник). Вид меха задается на панели Modify с помощью настройки серии параметров (рис. 53), среди которых наиболее важные сосредоточены в свитке Parameters . Это длина, толщина и изгиб ворсинок (Length , Thickness и Bend соответственно), степень воздействия на них гравитационной силы (Gravity ) и количество ворсинок в группе (Knots ). Помимо этого в секции Variation имеется несколько параметров, с помощью которых можно добиваться вариаций вида ворсинок: направлений их роста (Direction var ), длины (Length Var ), толщины (Thickness Var ) и уровня воздействия гравитации (Gravity var ). В секции Distribution регулируется плотность ворсинок на поверхности объекта - волосы могут назначаться на грань (Per face ) либо на область (Per area ). Первый вариант обеспечивает генерирование каждой гранью одинакового количества ворсинок, при втором количество ворсинок на грани зависит от ее размеров (у бо льших граней ворсинок больше, у меньших - меньше). Предусмотрены также настройки для ограничения области распределения меха на поверхности объекта (данные настройки сосредоточены в секции Placement ). При выборе варианта Entireobject генерировать мех будут все грани. Вариант Selected faces позволит создать мех только на выделенных гранях (такие грани нужно выделить модификатором MeshSelect ), а вариант Material ID - только на гранях с указанным ID материала. Имеется еще свиток Maps , где производится подключение текстурных карт для управления параметрами меха.

Рис. 53. Параметры инструмента VRayFur

Чтобы разобраться с нюансами создания меха инструментом VRayFur, создайте новую сцену с обычным шаром (рис. 54). Выделите шар, активируйте панель Create , в разделе Geometry выберите категорию VRay и щелкните на кнопке VRayFur - на шаре появятся отдельные ворсинки, разбросанные определенным образом (рис. 55). Полученный результат в окне проекции и при визуализации будет мало напоминать реальный мех, поскольку количество ворсинок невелико (рис. 56). Сделать мех густым и более естественным несложно - достаточно лишь увеличить плотность ворсинок на поверхности объекта, введя в поле Per area , например, 1 (на мехе в окне проекции это не скажется, поскольку там отображаются далеко не все ворсинки, но при визуализации будет заметно). А также подкорректировать цвет мездры (то есть самого шара, которому назначено меховое покрытие), напрямую изменив у него цвет (рис. 57). Неплохо также придать ворсинкам полупрозрачность - для этого придется создать полупрозрачный градиентный материал (рис. 58) и назначить его ворсинкам и самому шару. Кроме того, можно уменьшить толщину ворсинок (Thickness ) и увеличить их плотность (Per area ) - рис. 59. Полученный в итоге мех уже вполне похож на настоящий (рис. 60).

Рис. 54. Исходная сцена

Рис. 55. Появление на шаре отдельных ворсинок

Рис. 56. Вид покрытого мехом шара с параметрами по умолчанию

Рис. 57. Результат увеличения плотности ворсинок и изменения цвета мездры

Рис. 58. Градиентный материал

Рис. 59. Настройка параметров меха

Рис. 60. Вид покрытого мехом шара после корректировки параметров

При желании у созданного меха можно изменить множество самых разных параметров. Например, сделать так, чтобы ворсинки лежали более пышно, уменьшив значение параметра Bend и увеличив значение в поле Knots (рис. 61), либо совершенно запутались, существенно увеличив значения в полях Direction var и Gravity var (рис. 62).

Рис. 61. Вид меха с пышно лежащими ворсинками

Рис. 62. Вид меха со спутанными ворсинками

Свисающая с шара махровая ткань

Воспользуемся методом генерирования меха в V-Ray для моделирования свисающей с шара махровой ткани. Саму ткань мы создавать не будем (ее мы моделировали на одном из предыдущих уроков), поэтому просто откройте соответствующую сцену (рис. 63). Измените цвет фона на светло-серый и настройте освещение на базе одного Omni- и двух Spot-источников, для одного из Spot-источников включите генерацию теней по типу VRayShadow (рис. 64). Установите V-Ray в качестве текущего визуализатора и визуализируйте сцену (рис. 65).

Рис. 63. Исходная сцена

Рис. 64. Появление источников света

Рис. 65. Первоначальный вид сцены

Выделите наброшенную на шар ткань, активируйте панель Create , в разделе Geometry выберите категорию VRay и щелкните на кнопке VRayFur - ткань покроется редкими ворсинками (рис. 66). Уменьшите длину ворсинок (Length ) до 5, а толщину (Thickness ) - до 0,1. Также обеспечьте бо льшую случайность в расположении ворсинок, введя в полях Direction var и Gravity var значение 0,4. В области Distribution выберите вариант Per face (На грань) и увеличьте плотность ворсинок на каждой грани, указав в поле Per face значение 6 (рис. 67). В итоге вид изображения при визуализации изменится (рис. 68). Откройте редактор материалов и создайте в нем новый материал с градиентной текстурой, установите для данной текстуры в полях Color 1, Color 2 и Color 3 оттенки бордового цвета так, чтобы в поле Color 1 оказался самый темный из них (он будет в основании ворсинок), а в поле Color 3 (это оттенок для кончиков ворсинок) - самый светлый (рис. 69). Создайте материал с тем же самым цветом в поле Diffuse , что установлен в поле Color 1, и назначьте его ткани. Увеличьте плотность ворсинок (Per face ) примерно до 25-30 и проведите визуализацию - теперь ткань уже вполне похожа на махровую (рис. 70).

Сегодня подробно рассмотрим один из многих способов создания травы в среде 3Ds Max с применением рендера VRay и объекта VRay Fur.

1. Создадим новую сцену и установим сантиметры в качестве единицы измерения.
Для этого в меню «Customize» заходим в пункт «Units Setup»:

После этого те же единицы устанавливаем в разделе «Display Unit Scale»:

2. Создаем стандартный «Plane».

Параметры плэйна в моем случае 300 см на 300 см, количество сегментов 30 на 30, можно сделать и больше, например 700 см на 700 см, тогда число сегментов установите 70 на 70.

Такая плотность сетки необходима для объекта Vray Fur, с помощью которого мы будем создавать траву.

3. Добавим на Plane модификатор Noise, чтобы превратить плоскость во фрагмент ландшафта.

Параметры Noise в моем случае такие:

По верху накинем TurboSmooth с 1-й иттерацией.
В итоге получился вот такой объект, на который предстоит «посеять» траву:

4. Теперь создадим материал будущей травы.
Сама трава будет выполнена при помощи объекта Vray Fur, на который мы назначим материал VrayMtl. Для его создания будем использовать текстуру настоящей травы, например такую:

Для того, чтобы создать материал VrayMtl установим в качестве текущего рендера — рендер V-ray.
Для этого нажимаем кнопку «Render Setup»:

Внизу окна, в разделе «Assign Renderer» в поле «Production» выбираем в качестве текущего рендера V-ray.

Теперь открываем редактор материалов (Material Editor):

Выбираем слот и создаем материал VrayMtl:

В слот «Deffuse» назначаем «Bitmap» в виде изображения реалистичной травы.

Назначаем полученный материал на плэйн и нажимаем кнопку отображения материала в окне проекции на объекте:

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

Выделяем объект Plane, в разделе «Create» из выпадающего списка объектов выбираем группу «VRay», нажимаем на кнопку «Vray Fur»:

На плэйне появляется результат действия VRay Fur:

По умолчанию объект VRay Fur создается случайного цвета, как и все создаваемые объекты в 3Ds max.
Для того, чтобы «мех» стал травой необходимо его настроить, а для начала применить к нему созданный материал травы.
Для этого выделяем VRay Fur и перетаскиваем на него материал травы.

Делаем тестовый рендер:

6. Настройка VRay Fur.
У VRay Fur имеется ряд настроек, которые позволяют управлять внешним видом генерируемого «мехового» массива. Давайте рассмотрим их.

Source Oblect - Здесь указывается полигональный объект, для которого будет применено действие VRay Fur.
Для каждого независимого объекта назначается отдельный VRay Fur.

Основные параметры (Basic parameters):

Length - Здесь задается максимальная длина ворсинок меха.

Thickness - Толщина ворсинок.

Gravity - Притяжение ворсинок, величина, указывающая насколько сильно ворсинки меха будут изгибаться по оси z.

Bend - Величина изгиба ворсинок, при значении 0,0 ворсинки прямые.

Taper - Позволяет управлять видом ворсинок, делая их шире у основания и уже к верхушке.

Детали геометрии (Geometric detail):

Sides - Количество сторон. Параметр неактивен. Каждая ворсинка рендерится как полигональный объект.

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

Flat normals - Плоские нормали. При включенной опции нормали волосков меха не изменяются по ширине волоска. Это ускоряет просчет изображения. Когда эта опция выключена, нормали к поверхности изменяется по ширине пряди, создавая иллюзию, что ворсинки имеют цилиндрическую форму.

Вариации (Variation):

Direction variation - Изменение направления. Параметр позволяет внести изменение в направление, в котором волоски меха растут из исходного объекта. Величина параметра зависит от масштаба сцены.

Length/Thickness/Gravity variation - Вариации длинны, толщины и притяжения. Позволяют добавить случайное распределение этих трех значений (каждого по отдельности) для ворсинок в конечном массиве. Значение 0,0 — отсутствие вариации. Максимум — 1,0. Вариации этих параметров позволяют внести разнообразие и сделать конечный результат более живым и реалистичным.

Распределение (Distribution):
Данный раздел отвечает на то, как будет распределятся плотность ворсинок на объекте.

Per face - «По фейсу», то есть каждый полигон будет содержать указанное количество ворсинок.

Per area - По площади, в этом случае распределение плотности будет неравномерным, если полигоны имеют разную величину. Меньшие полигоны будут содержать меньшую плотность, большие — большую плотность.

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

Размещение (Placement):

Этот раздел определяет, на каких частях выбранного полигонального объекта будет сгенерирован мех.

Entire object - Весь объект будет покрыт мехом.

Selected faces - Только на выделенных полигонах будет сгенерирован мех. Этот параметр работает, если при помощи, например, модификатора MeshSelect создать выделение некоторых полигонов на объекте, то именно на них будет сгенерирован меховой массив Vray Fur.

Material ID - Полигоны, которым присвоен указанный ID материала будут участвовать в генерации меха.

Карты (Maps):

В этом разделе можно управлять некоторыми параметрами используя текстурные карты.
Здесь можно использовать сразу несколько различных карт.

Base map channel - Карта базового канала. Определяет, какой номер канала текстур будет использоваться для всех текстур, задействованных в генерации меха.

Bend direction map - Карта направления изгиба. Это RGB-карта, которая позволяет определить направление изгиба ворсинок меха в пространстве.
Красный компонент карты задает смешение по U (Х) направлению текстуры, зеленый по V (Y), а синий компонент смещение вдоль нормали к поверхности.

Length/Thickness/Gravity/Bend map - Карта для длинны, толщины, притяжения и изгиба. Для данных карт используется черно-белое изображение, где черный цвет означает нулевое действие параметра, а белый — максимальное (1).

Density map - Карта плотности. Для этой карты используется также черно-белое изображение, черные части которого соответствуют нулевой плотности (мех не будет генерироваться в данных областях), а белый предоставляет ту плотность меха, которая указана в параметрах распределения (distribution).

Отображение в окнах проекции (Viewport display):

Preview in viewport - Позволяет включить или выключить отображение ворсинок VRay Fur в окнах проекции.

Max. hairs - Значение максимального количества ворсинок для отображения в окнах проекции.

Automatic update - Автоматическое обновление просмотра изменений в окнах проекции.

Manual update - Показ обновлений просмотра в окне проекций в ручном режиме.

Это описание всех настроек VRayFur из официальной документации по V-ray.

Стоит также заметить, что VRayFur не работает с VRayPlane в качестве базового объекта.

Теперь рассмотрим изменение такого параметра, как Gravity:

Настроив некоторые параметры, такие как Length (Длинну), Thickness (Толщину), Gravity (Притяжение) и Distribution: Per face=7 (Распределение по полигонам) получаем вот такой рендер:

В случае, если плотность недостаточна, увеличиваем количество ворсинок на полигоне Per face .

Также регулируем длину травы в зависимости от того, что хотим получить — высокие травянистые заросли или стриженный газон.

7. Добавим в сцену солнце.
Дневное освещение сделаем при помощи VRaySun и VRay Sky.
В источниках освещение выбираем группу VRay, в ней тип источника VRaySun:

На вопрос «Хотим ли мы установить в качестве карты окружения карту VRaySky» отвечаем Да.

Устанавливаем VRaySun в необходимое положение в окне Top и Front.

8. Для дальнейшего рендера будем использовать VRayPhisicalCamera.

Переключаем вид окна проекции Perspective на VRayPhisicalCamera01:

И настраиваем положение камеры:

Параметры VRaySun:

Параметры VRayPhisicalCamera:

Тестовый рендер:

После изменения текстуры травы:

В данном примере мы не использовали Глобальное Освещение (Global Illumination) в настройках рендера V-ray, поэтому картинка недостаточно реалистичная и темная, но это было сделано исключительно для экономии времени и целью было описание принципа работы VRay Fur.


Иногда при 3D моделировании требуется создать что-нибудь пушистое... Нет, конечно в этом уроке речь пойдет не о котятах (хотя когда-нибудь мы, может и затронем эту тему), а обо всем том, что имеет поверхность, состоящую из мелких волосков. В интерьере это ковры, различные меховые изделия, в архитектурной визуализации - трава, а при включении в сцену людей - их волосы.

Так вот, чтобы создать объекты, состоящие из множества волосков, или ворсинок, используется очень полезный модификатор - Hair and Fur, дословно «волосы и шерсть». И сегодня мы разберемся, как им пользоваться, и займемся созданием с помощью него реалистичного ковра, меха и волос.

Итак, давайте разберемся что это за модификатор и где его искать. Знакомые с уже знают, что все модификаторы находятся во вкладке Modify в выпадающем меню Modify List. Я создала куб, чтобы увидеть все «фишки», которые я могу к нему применить, в том числе и Hair and Fur. Смотрите скриншот:

Давайте применим его к нашему объекту, чтобы увидеть, что получится. Выбираем куб/Modify/Modify List/находим наш модификатор. Вот такой волосатый кубик у меня получился.

Теперь давайте рассмотрим основные настройки наших ворсинок. Листаем свиток вниз, до вкладки General Parameters.

Рассмотрим их поподробнее:

  • Hair Count . Параметр, отвечающий за количество ворсинок.
  • Hair Segments . Отвечает за количество сегментов - чем больше значение, тем более гладкой получится форма нашего волоса.
  • Hair Passes . Отвечает за количество просчетов на рендере.
  • Density . Показывает насколько плотно поверхность засажена ворсом. 100 - максимальное значение.
  • Scale . Масштаб волосков.
  • Cut Length . С помощью этого параметра можно обрезать ворс по заданной высоте.
  • Rand. Scale . Отвечает за разнообразие в длине волосков. То есть, какие-то из них будут короче, а какие-то длиннее. Меньшее значение дает меньшую разницу в высотах.
  • Root Tick . Толщина основания.
  • Tip Tick . Толщина кончика.
  • Displacement . Выдавливает корни волос из поверхности объекта-источника. По умолчанию всегда стоит 0.

Регулируя эти настройки можно достаточно легко и быстро получить реалистичную модель ковра, шести животного или волос. Чем мы и займемся.

Быстрое создание ковра с помощью Hair and Fur

Для начала создадим основу для нашего ковра. Выбираем меню Create/Shape/Rectangle.

Создаем прямоугольник и задаем ему параметры во вкладке Modify. Пусть его размер будет 1000×1000 мм. А также сделаем ему скругленные края, на 100 мм. Смотрите скриншот ниже.

Сейчас у нас это просто контур, а нам надо его заполнить. Применяем к нему модификатор Garment Maker. Это позволит нам получить плоскость, хаотично разбитую на полигоны.

Далее применяем модификатор UVW Map из того же списка модификаторов. Он нам понадобится в том случае, если мы далее захотим добавить на ковер текстуру. Осталось только применить Hair and Fur. Вот, что у меня получилось:

Пока похоже больше на заросшую лужайку, чем на ковер. Чтобы получить нужный результат, введем параметры, как на скриншоте:

При рендере получился симпатичный зеленый коврик, с достаточно длинным ворсом.

Однако, в интерьере такое покрытие будет смотреться странно, ведь ворсинки не могут стоять чисто вверх. Гораздо реалистичнее будет, если мы их немного примнем, будто по нему походили. Для этого крутим свиток вверх и находим инструмент Hair Styling. Он позволит нам без проблем изгибать наш ворс в любом направлении.

Жмем на кнопку и шариком в хаотичном порядке приминаем волоски. Не забываем отжать кнопку Finish Styling.

Осталось только натянуть нужную текстуру и все - наш ковер готов и смотрится довольно реалистично!

Создание волос на голове человека

Волосы можно создать тем же путем. Но нужно выделить необходимые полигоны на голове 3d-модели человека, затем просто скопировать их в сторону, как отдельный независимый объект. А уже к этому объекту применить модификатор Hair and Fur, после чего заниматься настройками прически. Вот еще вариант работы с волосами (смотрим видеоурок):