Making Of "Диана"

Приветствую всех любителей и профессионалов мира CG! Меня зовут Илья Поляков, и в этом “мейкинг оф” я поведаю о том, как создавался портрет прекрасной девушки Дианы. Опыт в 3D у меня относительно небольшой — 5 лет. До этого работал по специальности далеко не связанной с миром искусства: микроконтроллеры, ПЛИС, Verilog HDL, канифоль и т.п.
Как я уже упомянул в комментариях к работе, здесь вы не увидите кучи референсов и рассуждений на эту тему, т. к. он был один единственный “тапочного качества”, обнаруженный на просторах всемирной паутины, принадлежащей русской девушке и послуживший, в первую очередь, основой для эмоциональной составляющей образа.
Итак, начнем. Готовьтесь к обилию букв. Отмечу, что на начальном этапе у меня не были сформированы какие-либо требования к финальному изображению, которое в итоге я должен был получить, ибо все начиналось с очередной *sigh* целью – выпрямлять руки в Zbrush, да - в свободное время и да – не всегда в свое удовольствие - “Надо Федя, надо!”. Спустя 3 месяца после обнаружения референса и созревания мысли пришла пора браться за работу, и начал я свое буйное творчество с 5-ти Z-сфер, преобразованных в Adaptive Skin.

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

Ретопологию делал ручками. Это как расслабляющий бальзам перед сном, с небольшой порцией легких задач по геометрии.

После увиденного кто-то покрутит пальцем у виска и скажет, да ты, чувак, ненормальный! xD И будет в некотором роде прав, но в тот момент я реально расслаблялся от этого. Кстати, чтобы этот ”мейкинг оф” не казался пустым набором слов или очередного романа известной российской писательницы, надо бы поведать как ЭТО делается. Я про ретопологию, конечно же, хотя сущности у этих действ одинаковые :) Значит, первым делом у вас должна быть загружена в Tool геометрия, для которой вы хотите сделать ретопологию. После успешного импорта или создания меша в Zbrush в том же окне выбираем ZSphere, затем в палитре Tool ищем раздел Rigging, раскрыв его, жмем кнопку Select Mesh. В появившемся окне выбираем меш, для которого будем делать ретопологию и нажимаем кнопку Bind Mesh (раздел Rigging). Далее раскрываем раздел Topology и жмем кнопку Edit Topology.


После проделанных манипуляций мы можем приступить непосредственно к ручной ретопологии, не забыв при этом включить, если она необходима, симметрию. Наносим точки\вертексы и соединяем их поверх нашего меша, формируя новую сеточку. Для того чтобы посмотреть что получается необходимо перейти в раздел Adaptive Skin и нажать кнопку Preview или горячую клавишу "A" (англ). Немного о нюансах и подводных камнях: если вы добавили вертекс на уже сформированной грани, то затем не забудьте перейти в режим Move и слегка сдвинуть его, таким образом, он встанет на положенные координаты над поверхностью искомой геометрии. Также в пылу ретопологии периодический возникают ситуации, когда вертекс отказывается перемещаться, виной тому маска, случайно нанесенная в процессе выделения оного с помощью сочетаний Ctrl+LMB, т. ч. достаточно ее сбросить на пустом рабочем пространстве Ctrl+LMB+Drag :) И еще крайне редко возникают рандомные падения ZBrush во время ретопологии, сохраняйтесь почаще. Если кто-то уверенно скажет, что зачем такие сложности, если есть ZRemesher, то я отвечу, что вы просто не сталкивались с ситуациями, когда даже ZRemesher с Polypaint'ом вкупе с Curves не дает желаемого результата. Еще 5 копеек на этот счет: в ZBrush есть альтернативный вариант для ретопологии с использованием кисти Topology, основанной на Curves, но он совсем ”не тру”!
Двинемся дальше. После того, как мы закончили ретопологию и сформировали свеженький Adaptive Skin, у некоторых может встать вопрос о потере части деталей. Если они вам так дороги, то не забываем о наличии функции Project в стеке SubTool или Projection непосредственно в Tool (последнюю необходимо использовать до применения Adaptive Skin). Подсказку по каждому параметру можно получить, наведя курсор мыши с зажатым Ctrl. Это относится в целом ко всему пакету ZBrush. И еще один маленький совет на тот случай, если вы что-то наскульптили, но забыли включить симметрию, схватились за голову, параллельно изливая нецензурную брань в свой адрес — частично вас может спасти функция Smart ReSym находящаяся в стеке Deformation.

В процессе скульптинга я очень интенсивно использовал слои. Асимметрия, детали кожи и фиксы – все это я доверил им на хранение.

Они позволяют оперативно откатиться назад или внести изменения, выбрав определенную зону с использованием кисти Morph. Последняя кисть очень полезна и проста в использовании: ищем стек Morph Target, жмем кнопку StoreMT, тем самым сохраняя текущее состояние меша, вносим изменения. Если часть изменений не устраивает, то используем вышеупомянутую кисть на той области, которой хотите вернуть первозданный вид (на момент StoreMT).

Таким же образом можно переносить часть деталей с одного слоя на другой.
Казалось бы, что основная геометрия головы была готова, но скажу честно – окончательную мимику я подбирал (миллиметровые изменения) практический вплоть до финального рендера.

Собственно, основная цель была достигнута — голова вылеплена, анатомически корректна и в планах не было дальнейших действий по шейдингу и тому подобное. Но что-то внутри взяло верх надо мной, в голове начал проявляться финальный образ, который я хотел запечатлеть на рендере, и постепенно у Дианы появилась одежда, прическа и кресло, но обо всем по порядку, хотя порядка не было — все делалось и дорабатывалось параллельно.
Развертку головы делал в 3dsmax, с помощью стандартного модификатора Unwrap UVW. Размеры островов непропорциональны: для лица я решил выделить немного больше площади, т. к. задняя часть головы и шея не несут важных деталей и будут спрятаны за одеждой / волосами. В развертке использовал вспомогательную текстуру uv-сетки, так, ради “понта”, ведь можно было и обойтись Checker'ом. Кстати, встроенный в Zbrush UV Master делает хорошие развертки для органических моделей, но контроль швов, как по мне - увы, не так удобен, поэтому я иногда делаю следующее: экспортирую необходимый сабтул (естественно - клон) в 3dsmax, намечаю швы, делаю авторазвертку (только с той целью, чтобы данные о швах сохранились в модели), затем возвращаю объект в ZBrush и делаю окончательную развертку в uv-master с использованием существующих швов.

Немного заострю внимание на переносе деталей на карту смещений (displacement map). Для “запекания” использовался встроенный в Zbrush Multi Map Exporter. В описании я сказал, что использовал меш головы с 20 тыс. полигонов, а детали перенес на дисплейсмент размером 8к. Все верно, только потом я для себя принял решение, что лучше брать меш «поплотнее» и переносить детали на обычный displacement map, нежели меш «разряженее» и vector displacement map, так как разница между объемами мешов 20к и 300к примерно 30 Мб, а разница между обычным displacement и vector в моем случае составили ~350 Мб (~170 мб на канал). В 3dsmax карта смещения подгружается через VRayHDRI.

Одежда создавалась с использованием Marvelous Designer. Для этих целей пришлось дополнительно «заскульптить» упрощенное тело (без ног и кистей рук) с основной Т-позой и бленд-шейпом под сидячее положение в кресле.

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

К сожалению, используемый в MD конвертер в квад-сетку еще далек от совершенства (на момент создания работы), поэтому для нанесения деталей, как я уже упомянул, одежду пришлось дорабатывать в Zbrush. На данном этапе я всецело отдался автоматизированным средствам: ретопология с использованием ZRemesher, для полученной новой сетки делал несколько сабдивов, проецировал (Project) на исходный меш из MD, затем ручная полировка и нанесение деталей. Развертка в UV Master, единственное, стоит отметить, что эту развертку пришлось немного подкорректировать, чтобы в дальнейшем тайловая текстура текстиля ровно ложилась на геометрии ткани. Фактура текстиля (будущая normal map) наносилась с использованием Surface Noise через альфу. Хотя в альтернативе можно использовать ту же бесшовную альфу, преобразованную плагином для Photoshop - NVidia NormalMapFilter в карту нормалей текстиля в составе composite map уже в самом 3dsmax, что может дать некоторую гибкость в получении итоговой плотности ткани. Данные манипуляции пришлось проделать для болеро, блузки и ее составных частей: воротник, рюшечки, не знаю как они называются — элементы с отверстиями для пуговиц)) Последние были созданы в 3dsmax

Карты нормалей запекались в Zbrush, карты отражений (reflect map) и бликов (glossiness map) создавались в Photoshop путем обработки вышеупомянутых карт нормалей. Цветочный узор болеро (diffuse map) был выбран после опроса нескольких представительниц прекрасной половины человечества :D на него добавлены крючки возле зоны «воротника» и голубой лотос, чтобы немного прикрыть банальный металл. И да, на одном из скринов выше, где на геометрии болеро присутствуют “кистевые” швы с нитками, все эти швы (нити) имеют геометрический дубликат :D

Для тех, кому интересно, как создать такой же простроченный шов, я поведаю о методе, который использовал в данном случае. Сперва создаем объект единичного шва / стежок; насколько он будет детализирован, зависит от требований, предъявляемых к конечному рендеру. Затем нам понадобится путь, по которому в дальнейшем он будут размножен. Все бы хорошо, когда объект простой и данный путь делается созданием такого же незамысловатого сплайна. На выручку пришел инструментарий ретопологии, применяемый в 3dsmax. Швы видны на картах нормалей, они и послужат визуальной направляющей при создании нашего пути. Выделяем любой объект (Editable Poly) лишь для того, чтобы вкладка Freeform (Modeling Ribbon) стала активной, указываем, что будем рисовать по поверхности искомого объекта (Draw on: Surface). Затем выбираем инструмент Splines, выставляем Min Distance (In Units) и поехали.

Отлично, сплайн готов, можно его немного подкорректировать и дело остается за малым — размножить шов по всей длине пути: для этого берем наш одинокий стежок, привязываем его к нашему пути через Animation → Constraints → Path Constraint и, выделив его, отправляемся в Tools → Snapshot, где опытным путем выясняем необходимое количество копий, которые нас устроят.


И да, метод не идеален, поскольку не умеет читать ваши мысли и воплощать их в реальность - если сплайн имеет сложную форму, то в некоторых местах стежки будут менять ориентацию, но руками это довольно быстро исправляется. В случае возникновения желания разом изменить вид шва, в Clone Method выбираем Instance.
Покраска головы осуществлялась в Mari. Одними из весомых аргументов, сыгравших в пользу этого пакета явились: возможность хранить несколько версий меша для одного объекта покраски (причина была указана выше), промежуточный буфер для рисования, позволяющий подкорректировать содержимое перед «запеканием», ну и отлично проработанный функционал со слоями и возможностью цветокоррекции. В качестве кожного донора выступила реальная модель. Естественно, пришлось изрядно потрудиться, чтобы избавиться от зон переходов, бликов и теней. На отдельные слои наносились небольшие родинки, румянец и губная помада. Gloss и reflect map были нарисованы здесь же с использованием ранее подготовленной карты нормалей (информация о порах). Затем диффуз кожи подвергался цветокоррекции для использования в различных слотах VraySkinMtl (Shallow, Medium, Deep).

Немного про глаза. Геометрически глаз состоит из объекта радужки со зрачком и внешней оболочки состоящей из склеры («белок») с хрусталиком. Последние разделены и настроены с помощью соответствующих карт, позволяющих получить плавный переход на границе. Радужная оболочка была создана путем смешивания нескольких образцов и их ручной доводки до финального результата.

Кресло было смоделировано не полностью, лишь та часть, которая планировалась попасть в поле зрения фотокамеры (VrayPhysicalCamera), но ножки все-таки у него есть :)

Мелкие складочки делал в Zbrush, затем перенес их на карту смещений (displacement map). Когда дело дошло до создания карты диффузы, то я столкнулся с проблемой выбора текстуры узора: однотонное смотрелось скучно, готические мотивы навивали грусть, а ведь хотелось в первую очередь несерьезности и легкости. И тут мне в руки попался узор, который в итоге остался на финальном рендере. Изначально он не был тайловым, но Photoshop и стандартный плагин Offset вместе с кистью Clone Stamp очень быстро решили данную проблему.
Теперь о самом душетрепательном — о волосах. На первых этапах мысли о проблемах не возникало. В Zbrush с помощью маски была создана зона роста волос, затем разделена на Polygroups и использован Fibermesh. С помощью стандартных кистей была создана прическа.

Имея некоторый опыт работы со стандартным модификатором Hair and Fur, я хотел попробовать Ornatrix или HairFarm, но, к сожалению, не нашлось, не срослось. Пришлось смириться и работать с тем, что есть. Самый главный недостаток Hair and Fur - абсолютно топорный контроль над волосами и вездесущая интерполяция, которая не оставляет возможности разделять волосы на относительно четкие группы и свободно ими манипулировать. Поэтому для достижения желаемого результата общая область роста волос была разделена на 5 частей: передние боковые левая и правая, задняя совмещенная с оставшимися боковыми частями плюс верх, отдельно область челки и зона с маленькими волосиками возле челки.

Теперь о нюансах. Если применить гайды волос из ZBrush в слот Spline Deform, то можно сразу забыть о функционале Style Hair. Для контроля прически придется двигать сплайны. В своей работе я обходился лишь Recomb From Spline. Для всех мешов, выступающих зонами роста волос обязательным является наличие развертки: во-первых, для дальнейшего создания небольшого цветового разброса волос, во-вторых, для карт density, т. к. в все меши на границах стыков имеют небольшой нахлест, который совместно с density map компенсирует плотность и аккуратность «шва». Если в слоте density имеется карта, то режиме Style Hair гайды волос перестают слушаться, для этого временно вырезаем карту из слота, проделываем процедуры над волосами, а затем возвращаем карту на место. Все это больше походит на некий глюк, но с ним приходилось считаться. Для придания большей естественности волосам, в частности в зоне начала их роста, к слоту opacity материала волос была подключена карта VRayHairTexInfo со следующими параметрами:

Смещение (bias) нашел опытным путем, т. к. длина волос мне неизвестна, чтобы можно было его посчитать на калькуляторе :) После продолжительной игры с настройками Hair and Fur и тестовых рендеров, я остановился на следующих:

Брови были сделаны по схожей технологии: гайды созданы в Zbrush с помощью Fibermesh, затем перенесены в 3dsmax. Ресницы полностью в 3dsmax. Мелкие волосики на лице рендерились отдельно с помощью VRayFur и накладывались в процессе пост обработки, наверно, из-за лени создавать лишние пару карт.

Тестовые и финальные рендеры осуществлялись с помощью V-Ray. Итоговая картинка в разрешении 4096х3072px. Из-за высоких настроек рендера и волос (~80к + 128 сегментов) объем потребляемой оперативной памяти доходил до 24 Гб, оставалось еще 8Гб, так что можно было спокойно открыть несколько копий огнелиса. Время финального рендера укладывалось примерно в 10-12 часов на одном процессоре Core i7 2600.
Постобработка была незначительной. Использование Zdepth для размытия фона, который настраивается выставлением far и near clipping plane в VrayPhysicalCamera. Так же немного подчеркнут блеск на щеках и волосах с использованием рендер-элемента VRaySpecular. Щепотка контраста и вуаля!
Относительно критики. Самыми действенными и «жестокими» оказывались люди, совсем не связанные с 2D/3D-графикой, т. к. последние изначально понимают, что к чему и мягко смотрят на финальную картинку.


В заключение хочу сказать, что портрет планировался остаться лишь в качестве работы “для себя”, но окружающие меня люди, кто видел его, подтолкнули его «где-нибудь» опубликовать :D Думаю — не зря!
Благодарю всех за внимание, проявленное терпения во время прочтения данного «мейкинг оф» и отзывы, оставленные непосредственно к работе! Отдельное спасибо Сергею new² за очень маленький, но очень прикольный совет, данный после того, как все волны утихли!

P.S. Творение создавалось под флагом умеренной ночной анархии с февраля по июнь, с небольшой порцией фиксов в июле. :)
Все. Теперь можно действительно отдохнуть и переключиться на кардинально иное увлечение в свободное время, т. к. 3D хватает в рабочие часы. Вдохновляйтесь, изучайте, творите, и не бойтесь совершать ошибки!

P.P.S. Всех с Наступающим Новым Годом!

787 0 850 40
14
2015-12-21
Просто слов нет. Потрясающе смотрится.
2015-12-21
Огромное спасибо за мейк!
2015-12-21
Шикарный мейк, отличная работа, масса труда, приятно посмотреть, спасибо автору!
2015-12-21

"""хранить несколько версий меша"""

не понял - очем это?

2015-12-21
Роман, спасибо и вашей редакции за публикацию материала, буду рад, если кому-нибудь он принесет пользу )[quote=Бабуинище]

"""хранить несколько версий меша"""

не понял - очем это?

[/quote]Речь идет об этом функционале Mari.
2015-12-21
Классно! С наступающим!
2015-12-21
Работа шикарна! За мейк оф большое спасибо!
2015-12-22
Кто-то еще критиковал? Шедевр!
2015-12-22
[quote=центари] Кто-то еще критиковал? Шедевр! [/quote]К сожалению(?), критика неотъемлемая и необходимая часть создания чего-то стоящего )
2015-12-28
Супер
2015-12-30
Привет ребята! Работа очень классная, завидую таким мастерам которые владеют 3д графикой. Сам тоже художник, изучал 3д графику. Работать конечно могу, знаю почти все азы в 3 д макс. У меня один вопрос: Работа в 3 д макс зачем это нужно? Зачем создавать такие реалистические портреты тратя на это несколько месяцев. Хотя можно нарисовать портрет реалистичный красками и создать настоящий портрет на холсте за 2 недели или по легче с помощью другой техники. Мне кажется 3д графика подойдет для ландшафтного дизайна и интерьерного дизайна. А создавать такие реалистичные как портрет, авто и др. ни понимаю для чего. Сам тоже перестал этим заниматься потому что не мог найти ответа на этот вопрос. Кто меня не знает рад знакомству.
2015-12-30
[quote=оптимист] Зачем создавать такие реалистические портреты тратя на это несколько месяцев. Хотя можно нарисовать портрет реалистичный красками и создать настоящий портрет на холсте за 2 недели или по легче с помощью другой техники. [/quote] Поясню, завтра-после завтра автор этой работы получит заказ студии в работе над крупным рекламным проектом или фильмом и обладая этими знаниями будет получать з/п в 200-300 тыс.рублей, а настоящий портрет красками он максимум может повесить над пустым холодильником. Посмотрите в разделе вакансий на сайте, есть специальности с з/п порядка 500 000 в мес., так что ответ на вопрос очень простой, специалисты такого уровня очень дорого стоят.
2015-12-30
Поперхнулся, не мог долго откашляться xD Надо будет взять на заметку перед беседой с руководством. Относительно комментария оптимист'а, откинув в сторону материальную составляющую, попробую предположить, что главное скорее в том, каким образом манипулируя подручным инструментарием художник может себя выразить, а не само "предназначение" оных. Казалось бы, спички нужны чтобы ими разжигали костер или духовой шкаф, но кто-то клеит из них восхитительные парусники. Для меня неподвластно классическое искусство, максимум, что могу выжать это грубые скетчи, но будоражит технологичность, которая присуща 3-х мерному искусству ))
2016-06-06
Работа супер! На 90% похожая на мою знакомую. ))  http://i045.radikal.ru/1606/5b/0a6260a287c0.jpg
RENDER.RU