Статьи: Эксклюзив

Making Of "Король Друидов-Когтя". Часть 2

Создание средне полигональной модели. 
По условиям конкурса не было ограничений в количестве используемых полигонов, но было ограничение, по которому в модели должна присутствовать Uv развёртка. Поэтому я стал делать модель под рендер создавая её различными автоматическими способами. Т.е. такой способ не применим если вы делаете игровую модель, где идет упор на создание оптимальной полигональной сетки модели, где каждая точка должна нести форму. Но в данном случае стояла цель снизить полигонаж с 87 000 000 до 1 200 000 , что бы в конечном итоге можно было комфортно работать с рендером.
Для начала я сделал в браше Merge элементам которые в последствие будут едиными объектами в Middle Poly. Так как я не экономил полигонаж , и в первую очередь смотрел на то что бы не было заметно разницы между Hipoly и Middle Poly, а так же что бы бейк нормал мапа был наиболее простым, я старался применять Merge только на те элементы которые вставлены друг в друга. Как например деревянный наплечник и мох, такие элементы были склеены Merge’ом.

После экспортировал объект в папку с объектами для бейка. Замечу что со временем выработал для себя нейминг для этих объектов, который не дает запутаться в кучи деталей. Раньше я пытался называть каждый объект своим именем с приставкой Hi либо low, где Hi означала что модель хайпольная и с нее будет бейк и соответственно low это лоуполи, на которую будет запекаться нормал. Но когда модель сложная и в ней много элементов под бейк, то часто бывает много схожих элементов которые не знаешь как назвать. Допустим у вас в костюме модели есть сумки разного дизайна и разного размера и вы начинаете называть их при экспорте под бейк сумка средняя, сумка маленькая, сумка красная, сумка красная 2, потом делаете лоу поли модели, стараетесь назвать их теме же именами и тут бывает реально сложно вспомнить какой объект как вы точно назвали. Но вот вам кажется вы все назвали верно, потом начинаете все бейкать и понимаете что названия местами не сходятся. И тут приходиться вспоминать где вы совершили ошибку. В случае друида было 70 деталей даже после объединения по группам, повторюсь я не делал лоу поли, я делал средне полигональную модель в которой основной целью цель было отсутствие отличий между хай поли и моделью под рендер. Поэтому большинство сабтулов так и остались по отдельности. Так вот, сортировку и нейминг я выработал следующий, каждую пару деталей хайполи и лоуполи заливать в одну папку которая называется Detail_## и в которой хранятся эти самые модели с названиями Detail_##_low либо Detail_##_hi. И каждую следующую пару хайполи и лоуполи сохраняете в папку с увеличенным наименованием в нумерации +1, иногда добавляю скриншот с моделью с таким же неймингом в общую папку. В таком случае вам не придется выдумывать ни каких креативных названий, что уже уменьшает путаницу. Далее после бека опять же с точно таким же названием вы будете сюда сохраняет нормал мап, т.е. его нейминг будет Detail_##_n, и это тоже плюс т.к. сохраняя различные пробы бейка нормала в одну папку и с разных деталей приводит к полной путанице. Если держаться системы которую я описал то в конечном итоге у вас получится на каждую деталь своя отдельная папка Detail_## в которой будет 3 файла Detail_##_hi , Detail_##_low, Detail_##_n.

Вид общей структуры папок показан ниже.

Вид содержимого папки.

Вернемся к экспорту хайполи, после такого как мы сделали экспорт с правильным неймингом. Делаем на совмещённые между собой объекты операцию Dynamesh с высоким значением Resolution, это нужно для того что бы склеить отдельные модули в цельный объект. После я применял decimation на объект, что бы сократить его полигонаж. Можно конечно было сделать вручную, но это бы заняло уйму времени, и опять же, все делалось под статичный рендер поэтому в ручной ретопологии было не особо много смысла. В данном случае не использовался zremesh т.к. он смазывает все выступающие детали, углы и не сохраняет силуэт, даже если вы воспользуетесь после этого кнопкой Project в сабтулах, вы не сможете добиваться резкости в формах т.к. он строит точки сетки не по краю угла а с небольшим отступом на прилегающих сторонах, поэтому после прожекта они не попадают на самую выступающую часть угла. От этого модель становиться вся с немного скругленными углами. Конечно можно добавить девайдов и сделать Project, но тогда мы снова вернемся к изначальному полигонажу. Decimation анализирует геометрию что бы сохранить все ее детали. И делает в разы меньшее количество полигонов. Он не делает правильной топологии, но оставляет максимально похожую на оригинал форму с уменьшенным количеством треугольников.

На наплечник после некоторых экспериментов я решил сделать его в 12 000 треугольников. После чего он выглядел следующим образом.

После чего делал развертку для элементов в Zbrush, с маркировкой внутренней и внешней стороны в режиме Protect. В зонах такой маркировки не будет швов при автоматической развёртке. Торцы же наоборот оставил не закрашенными.

Далее жмёте кнопку Unwrap и он создает автоматическую развертку, что бы ее посмотреть жмёте кнопку Flatten, после чего ваша модель проецируется на плоскость, что бы вернуть её снова нажимаете UnFlatten.
Развертка получилась следующего типа. Да, развертка не самая лучшая, но под статичный рендер этого было более чем достаточно.

MiddlePoly модель тела я делал через Zremesh т.к. оно не имеет острых краев. А лицом отмоделил вручную , после чего накинул один раз девайд и сделал Projecton в браше.
Итоговая модель в 3dsMax имела 1 200 000 полигонов вращалась и редактировалась вполне свободно.

После я разбил все объекты на 4 группы, каждая группа должна была иметь свою уникальную текстуру с разрешением 4096x4096. Разбивку старался делать по схожести материалов . После чего я эти группы я разделил еще на подгруппы. Т.к. Совмещение UV в один атлас при высоком полигонаже довольно не простой процесс. Первые подвисания, начинаются от 50 000 – 100 000 треугольников, дальше только хуже. Поэтому внутри каждой подгруппы я составлял Uv островки в половину от общей площади атласа. Одна подгруппа располагалась сверху, другая снизу.
На изображение видно одну из подгрупп в Uv.

После чего я сохранил Uv развертку в текстуру и подгружал ее фоном для второй подгруппы. После чего, расставив на свои места оставшиеся элементы.

Лицо занимало весь атлас Uv от верха до низа, свободные места заполнил оставшимися элементами. Так же хочу сказать, что я не делал элементам Attach между собой при создании развертки, а просто накидывал модификатор Unwrap на группу или подгруппу выделенных объектов. Это было сделано для того что бы применить функцию Convert to Editable Poly ко всем объектам в сцене, после окончания работы с  Uv , при этом сохранив  все  элементы отдельными объектами с правильным неймингом. Ведь в дальнейшем нужно будет запечь нормал мап на каждый объект по отдельности, либо группами специально сделанными под этот процесс.

Запекание карт


Ambient occlusion (AO) — модель затенения, используемая в трёхмерной графике и позволяющая добавить реалистичности изображению за счёт вычисления интенсивности света, доходящего до точки поверхности. В отличие от локальных методов, как например затенение по Фонгу, ambient occlusion является глобальным методом, то есть значение яркости каждой точки объекта зависит от других объектов сцены. В принципе, это достаточно отдалённо напоминает глобальное освещение.

Ambient occlusion чаще всего вычисляется путём построения лучей, исходящих из точки поверхности во всех направлениях, с последующей их проверкой на пересечение с другими объектами. Лучи, достигнувшие фона или «неба», увеличивают яркость поверхности, в то время как лучи, пересекающие другие объекты, не добавляют яркости. В результате точки, окружённые большим количеством геометрии, отрисовываются как более тёмные, а точки с малым количеством геометрии в видимой полусфере — светлыми.

Ambient occlusion относится к методам, основанным на доступности элемента поверхности для различных факторов, таких как грязь, свет и т. д. Он получил популярность благодаря относительной простоте и достаточно высокой эффективности. Часто AO также называют «sky light».

Normal mapping — техника, позволяющая изменять нормаль отображаемого пикселя основываясь на цветной карте нормалей, в которой эти отклонения хранятся в виде текселя, цветовые составляющие которого [r,g,b] интерпретируются в оси вектора [x, y,z], на основе которого вычисляется нормаль, используемая для расчета освещенности пикселя. Благодаря тому, что в карте нормалей задействуются 3 канала текстуры, этот метод дает большую точность, чем Bump mapping, в котором используется только один канал и нормали, по сути, всего лишь интерпретируются в зависимости от «высоты».

Albedo (лат. albus — белый) — характеристика диффузной отражательной способности поверхности.


Оклюжен я не запекал, ввиду того, что этот процесс занимает много времени, плюс рендер трёхмерной сцены сам может его генерировать, что дает более реалистичный результат в отличаи от оклюжена, нанесенного в карту Albedo map (Аналог карты Diffuse map,  в которой используются цвета материалов без учета освещения).  Но для затемнения различных углублений поверхности запеченых в нормал я использовал CavityMap, сгенерированную из NormalMap и нанесенную в дифуз. С появлением PBR (Physically Based Rendering) рендеров для получения реалестичных результатов оклюжен в принципе не рекомендуется наносить в карты Albedo, Reflectivity и Microsurface, которые разберём на этапе текстуринга более подробно.
Есть несколько моментов которые стоит сразу узнать до запекания карты нормалей.

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

Пример правильно настроенных групп сглаживания под бейк, где одну группу сглаживания имееют только полигоны между которыми угол более 90 градусов.

Стоит заметить, что векторы нормалей точек, прилегающих к полигонам разных групп сглаживания разбились на отдельные векторы. По направлению этих векторов можно так же запекать нормал мап при режиме Raytrace.
Есть некоторые различия в направление нормалей между объектами в формате Editable Mesh и Editable Poly.
Что несёт с собой различный шейдинг, это различие минимальное, но запечённая карта нормалей Editable Poly перестает подходить от Editable Mesh на Editable Poly и наоборот. Но если перед бейком карты нормалей на модель накидывать Edit Normals модификатор, то шейдинг становится одинаковым и карта нормалей при бейке приходит к универсальному виду.
Далее мы проведём тестовое запекание нормал мапа, на котором разберем различные значения шейдинга и их влияние на бейк. Ниже Пример лоу поли моделей без карты. 

В данном примере все объекты были с одной группой сглаживания. Но к ним были применены различные модификаторы влияющие на их шейдинг. Разберем каждый из них и найдём схожие.

1 – Edtiable Mesh
2 – Editable Poly
3 – Editable mesh + Edit normals модификатор
4 – Edtiable poly + Edit normals модификтор
5 – Был создан куб, переведеный формат Editable Mesh, после чего к его модели был присоеденен командой Attach объект номер 3. (данная операция с кубом часто используется для сброса - чистки всех настроек объекта )
6 – Был создан куб, переведенный в формат Editable Poly, после чего к его модели был присоеденен командой Attach объект норер 4

Из данного примера мы видим:

1 - что объекты Editable mesh и Editable Poly имеют одинаковый шейдинг с модификатором Edit normals ( дальнейшее применение Collapse к модификатору с Editable Poly/Mesh  не изменяет результат). Так же любые изменения связанные с Attach к другим объектом формата Editable Poly не несет изменений.
2 - Объекты 1 и 5 имеют одинаковый шейдинг , хотя к кубу Editable Mesh был сделан Attach объекта номер 3. После чего эффект от модификатора Edit Normals был сброшен.
3 - Объект номер 2 был получен переведением примитва в Editable Poly и последующим редактированием. Данный пример шейдинга можно всегда получить из варианта номер 1 переведённого в Editable Poly.
Далее мы забейкаем на вариант 4 нормал с хайполи модели.
Как выглядит хайполи модель

Как выглядят объекты с нормал мап.

Данный пример нам показывает то, что нормал мап, запечённый на вариант номер 4 подходит только на объекты с таким же шейдингм. В остальных случаях он смотрится не правильно. Повторюсь, что шейдинг меняется даже за счёт перевода модели из Editable Mesh в Editable Poly, если не был применен модификатор Edit Mesh.
Таким образом, можно сделать вывод, что максимально простой вариант, при котором нормал выглядит всегда одинаково и на Editable Mesh и на Editable Poly - это применение  к объектам модификатора Edit Normals, с последующим коллапсом стека модификаторов. Если вы импортировали модель из другой программы, допустим Maya со значениями import/export по умолчанию, где включен режим импортирования векторов нормалей,

то на объекте будет шейдинг тот, который был задан программой Maya. Поэтому вам придется использовать модификатор Edit Normals в котором нужно будет выделить все нормали объекта и  применить функцию Reset.

В программе Maya подобная функция называется Unlock normals.
Для правильной проекции нормалей с хайполи на лоуполи в карту normal map часто пользуются функцией cage, которая находится внутри модификатора projection. Cage отвечает за область и направление лучей проекции запекания. Каждому полигону на лоу поли модели имеется  соответствующая плоскость на cage,  hi poly объекты, расположенные между  ними,  будут запечены  на модель в соответствии с формой cage.
Теперь я расскажу как им пользоваться. Что бы включить hipoly модель в прожекшен лоу поли модели нажмите кнопку pick и выберете hipoly. Для удобства советую включить функцию shaded, таким образом плоскости cage станут полупрозрачными. Далее увеличивайте Amount в разделе push , пока cage не захватит hipoly модель в нужных местах. После вы можете вручную отредактировать cage по точкам, данный метод работает аналогично моделированию сеток EditPoly/EditMesh.

Далее, на примере, мы рассмотрим направление плоскостей проекций cage и как что это влияет на бейк.
Ниже представлены 2 цилиндра, low poly и hipoly.

Далее я накидываю модификатор projection и создаю cage применяя к нему стандартный push. 

На первый взгляд все выглядит приемлемо, cage полностью захватывает hi poly модель. На следующем скриншоте виден результат.

В данном случае на краях низкполигонального объекта появились волны на нормале – Сколопы. Они появляются за счет того что проекция запекания ребра цилиндра находится под углом к нему и с ракурса проекции получается как раз правильный результат, во всех остальных случаях мы видим волны и чем меньше полигонов в низкополигональной модели, тем сильнее эти волны становятся.
Для того что бы Сколопов не появлялось на карте нормалей нам нужно правильно настроить cage а именно прижать торцы cage к торцам hipoly модели. Таким образом мы изменим угол проекции запекания.

После запекания объект с нормал мап выглядит следующим образом.

Таким образом, после изменения проекций cage, мы получили наиболее правильный результат без Сколопов на карте нормалей.
Также мы можем сделать запечку карты нормалей без включения и какой либо настройки cage, но стоит отметить, что модификатор projection все равно должен быть применен к низкополигональному объекту.
Данный метод подразумевает собой отключение функции cage опциях Render to texture. В таком случае проецирование векторов нормалей с хайполи модели в карту нормалей будет производиться относительно направления векторов нормалей лоу поли модели.

Результат получается схожий с бейком нормала при дефолтных настройках Cage. А значит у нас снова появляются сколопы. Но если торцы мы вынесем в одельную группу сглаживания и попробуем запечь нормал , то таким образом проецирование нормалей в карту будет под строгим перпендикуляром относительно ребер верхней и нижней плоскости цилиндр , т.е. в направлении векторов нормалей низкополигональной модели.

При этом варианте нет Сколопов но есть «промахи» лучей при запекании карты нормалей. Т.е. места где во время бейка не была захвачена лучами хай поли модель там будут появлятся ошибки в карте нормалей.
На скриншоте ниже видны примеры «промохов».

Если вы запекаете Нормал Мап в Xnormal то вы также можете запекать, либо с кейджом, либо без него относительно направления нормалей лоуполи модели.

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

Можно подгружать в Xnormal модель с кейджом двумя различными способами.

Первый способи - это экспорт модели с кейджом в формате sbm из программы 3ds Max. Возможность экспорта в sbm появляется после установки Xnormal на ваш компьютер. При экспорте нас будет ждать окно в котором мы можем выбрать что именно мы экспортируем хай поли модель или лоу поли модель, данный выбор позволит программе автоматически выбрать нужные настройки. Если выбрать настройки для лоу поли модели , тогда будет включена функция cage. Есть обязательное условие при экспорте в формат sbm для низкополигональной модели, она должна быть в формате editable mesh.

Второй способ - это экспорт кйджа отдельно в формате Obj и в последующем его загрузка в xnormal.
Для этого нам надо выбрать лоуполи объекст с настроенным кейджом и сначала его перевести в отдельный объект, при помощи кнопки export в функциях projection.

После чего экспортировать полученный кейдж в формате obj. Далее заходим в xnormal и кликаем правой кнопкой по лоуполи объекту и выбираем функцию Browse external cage file, как показано на скриншоте ниже.

После чего выбираем кейдж в формате obj. Стоит отметить, что лоу поли модель должна полностью соответствовать по количеству ребер и полигонов  вашему кейджу, и так же должна быть в формате obj, а не sbm.
В последней версии Xnormal между этими способами нет разницы, но если вы работаете со старыми версиями, то при экспорте модели через формат sbm cage влиял только на длину лучей, но не на их направление.
Есть ещё обязательное правило разрезать на разные uv shell модель в тех местах, где стыкуются разные группы сглаживания. Т.к. если этого не делать, то появляются ошибки в виде швов. Ниже представлен пример модели, к в которой полигоны разных групп сглаживания не были разделены на развертке на разные uv шеллы.

Так же озвучу ещё одно правило, то что швы в развертке лучше всего располагать в линию, там где это возможно, строго вертикально или горизонтально. Причем длина шва на uv шелах должна сохраняться одного размера. Если этого не делать, то появляются различные баги на швах, т.к. с разных сторон шва получается различное количество занимаемых им пикселей, т.е. получается различный тексель. Если шов проходит по диагонали в UV и угол с различных сторон шва разный то скорей всего вы опять получите разную длину шва, что приведет к разному количеству занимаемых им пикселей  с разных сторон, плюс вы получите размытие текстуры в окне проекции по диагонали. Но все это относится к правильным лоу поли моделям. Т.к. я делал очень высокое разрешение текстуры для Друида то этот баг с различным текселям текстуры на шве обошел меня стороной.

При экспорте модели в xnormal и последующем бейке normal map  вы получаете результат именно под ту программу, из которой вы делали экспорт лоу поли модели. Т.е. Если вы сделали экспорт лоу поли модели из 3ds Max в Xnormal и запекли Normal map, то полученная карта будет коректно выглядеть именно в 3ds Max, если вы просмотрите модель в Maya то она так же будет корректно смотреться до того момента, пока вы не сделаете Unlock normals. И все наоборот если модель в Xnormal была загружена из программы Maya, то запеченный normal map будет подходить только под Maya, в 3ds Max результат будет корректным, пока вы не сделаете resset normals или не начнете редактировать модель. Т.е. если модель в данной программе при текущем алгоритме расположения нормалей с назначенным на нее normal map выглядит корректно, то при экспорте в любую другую программу либо игровой движок, все будет отображаться корректно пока вы сбросите значение алгоритма расположения нормалей под другую программу. Но что бы это работало в экспорте модели проверяйте что бы у вас была включена галочка normals.


Друида я запекал в 3ds Max. В Последних версиях программы нет особых сложностей с загрузкой высокополигональных моделей и их просмотром во вьюпорте с включенным драйвером nitrous. Поэтому, во время запекания нормала, я загружал High Poly детали в 3ds max полигонаж которых доходил до 9 миллионов треугольников? при этом вьюпорт выдавал 60-80 кадров в секунду во время вращения модели. Т.е. работать с ними в формате запекания карт было более чем комфортно, но любое редактирование сопровождалось жуткими торможениями.
Для антиалайзинга во время запекания карт нормалей я использовал фильтр hammersley. jryj

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

Для сохранения карты нормалей обычно используется формат Tga. Если у меня много элементов во время бейка, которые мне придется компоновать между собой, обычно я выбираю формат tga в 32 битах. Т.к. в 32 битах в файле появляется альфа канал, спомощью которого можно легко выделять запеченный участов в фотошопе. 

Еще можно рисвовать фаски на карте нормалей на объектах вручную в фотошопе. Данный способ может вам сэкономить время , которое было бы потраченно на создание хай поли модели, и последующий бейк. Ниже на скриншоте пример рисованых фасок.

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

После чего можно воспользоваться фильтром xnormal, для переведения чёрно-белой карты высот в карту нормалей.

Либо воспользоваться аналогичными функциями в программах ndo, либо crazybump. В использовании плагина от xnormal есть небольшой минус, вы не сможете задать толщину фаски. И вам придется вручную дорабатывать нормал.  Т.е. дорисоывать толщину фаскам, сделать это не сложно, достаточно выбрать цвет фаски и просто кистью по толще ее прокрасить. Ниже на скриншоте видно какой был размер у фаски изначально и каким он стал после прокрашивания.

Если у вас будут швы на модели проходящие по фаске - это значит что нужно подобрать правильное значение интенсивности нормал мап.
Изначально результат был следующим:

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

На скриншоте ниже видно что я скопровал слои с фасками в фотошопе. 

Результат получился следующим.

Да частично баги остались, но на небольшом отдалении их уже не видно.

Иногда удобней накладывать фактуры не на хайпольную модель, а делать это в фотошопе уже на лоу поли модели. Этот способ работат не всегда хорошо. Т.е. он не особо применим для органики, но хорошо подходит для создания фактур ткани.
Фактура накладывающаяся поверх карты нормалей в фотошопе должна быть монохоромным бампом, который мы при помощи плагина xnormal переводим в карту нормалей при помощи той же операции, как мы делали фаски Filter->xnormal->height2normals. 

Далее я накладываю сгенерированый слой поверх основного нормала модели и пременяю к нему режим наложения Overlay.

На первый взгляд кажется, что всё выглядит нормально, но на самом деле режим Overlay не подходит для синего канала. Дело в том что слой смешиваемый через режим Overlay воспринимается нейтральным при 50% прозрачности, т.е. средней тональности серый слой со значениями rgb = 128;128;128 при наложении через Overlay будет прозраным. И у красного и синего канала фоновый цвет как раз серый средней тональности. Т.е. При наложении через Overlay добавлются только детали фактуры и не изменяется основна. У синего же канала фон имеет белый цвет. Т.к. синий канал отвечает только за глубину в карте нормалей, поэтому наложение фактуры через Overlay стирает синий канал. Ниже таблица с примером.

На данном примере мы видим, что синий канал после наложения фактуры стал просто белым.
Поэтому синий канал фактуры мы добавляем отдельно, через стиль слоя multiply и отключаем его в слое с наложением overlay.

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

Т.е. нам нужно продублировать слой фактуры и в первом случае накладывать через режим Overlay с отключенным синим каналом, а дубликат накладывать через Multiply с отключеными красным и зелёными каналами. Тогда мы получим правильный результат после наложения фатуры, не изменяющий карту нормалей основы.

Скриншот ниже с Gif анимацией показывает, как исчезает объём внутри деталей, при удалении синего кнала.

Пользуясь инструментами и принципами описанными выше, я запёк модель Друида элемент за элементом, компjнуя результат в фотошопе.

Волосы и шерсть

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

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

Основные значения, которые я менял под различные группы волос, были:
1)      Max Fibers –количество волос
2)      Length – длина
3)      Coverage – ширина
4)      Segments – количество сечений.
Когда вы подобрали нужные значения, нажимаете  accept и волосы отделяются в отедльный сабтул. Есть кисти Groom, предназначенные для редактирования волос. Я использовал в основном Groomer strong, для задания направления волос. Шерсть на меховых элементах костюма делалсь по тому же принципу. 
Финальная часть материала появится завтра утром. 

12349 Автор:
Актуальность: 823
Качество: 823
Суммарный балл: 1646
Выбор Публики
Голосов: 74 оценки

Отзывы посетителей:

аватар
 
Meridia 2 0

По поводу волос, экспортировались  как обычный mesh через obj , просто поставил не высокое значение сегментации волос при их создании. В общем все волосы и шерсть получились около 200 000 треугольников. В третей части Making of описан материал для них.


Спасибо за отзывчивость.
аватар
 
Слава Гедич 327 1

Verutas

Alex04Se

Денис Меленец

DAGON92

paradox

Igor Golovkov

Meridia

Спасибо Ребят! :)

По поводу волос, экспортировались  как обычный mesh через obj , просто поставил не высокое значение сегментации волос при их создании. В общем все волосы и шерсть получились около 200 000 треугольников. В третей части Making of описан материал для них.

аватар
 
Meridia 2 1

Привет, спасибо за статью. Хотел узнать каким способом экспортировал fiber mesh в Marmoset toolbag 2. 

аватар
 
Igor Golovkov 106 0

настоящий making of :)

аватар
 
paradox 15 0

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

За making-of спасибо, оценки людей говорят сами за себя.

аватар
 
DAGON92 5 0

Спасибо большое, очень познавательно. 

аватар
 
Денис Меленец 39 0

Очень крутой подход, спасибо за тонкости!

аватар
 
Alex04Se 568 1

Очень круто. Пособие всем персонажникам ))

аватар
 
Verutas 1 1

Ждём финала, очень познавательно)

Зарегистрируйтесь, чтобы добавить комментарий.
Эту страницу просмотрели: 838 уникальных посетителей