Making Of China Dragon

Всем доброго времени суток. Хочу поделиться с Вами процессом создания проекта Сhina Dragon.

Статья состоит из двух частей: в первой рассказано про цифровую часть (моделинг, скульптинг, рендер), во второй - про саму печать (подготовку и оптимизацию модели для печати, некоторые особенности настройки принтера и финальная покраска напечатанной модели.)

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

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

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

Pureref.jpg

Подборка референсов в PureRef

Базовый блокинг делал в Maya. Для здания накидал несколько кубов и цилиндров, для дракона использовал обычную curve (Curves/ EP Curve Tool), так как её удобнее редактировать налету, а затем уже преобразовывать в геометрию (Create/Sweep Mesh). Это проще и экономит много времени и нервов, намного лучше, чем пытаться лепить что-то сразу из геометрии. К тому же её можно преобразовать в кисть curve в Zbrush. Этот метод я покажу ниже.

Blocing.jpg

Базовый блокинг в Maya

Вернемся к дому. Со зданием я решил сильно не заморачиваться, это будет не основной элемент композиции, поэтому с архитектурой не мудрил. Остановился на трех каскадах и круглой крышей со шпилем. Само здание выполняет роль храма, посвященного данной рептилии, так как это все у нас фэнтези и делается для красоты, поэтому изначально было решено не стремится к «историчности» и архитектурной правдоподобности. Дом начал с создания базовых форм в Maya, замоделил черепицу и крыши (сделал несколько видов с различным расположением лупов, но остановился на таком как на скриншоте ниже, в дальнейшем будет видно почему).

Blocing 2.jpg

Основа для крыш

Теперь перемещаемся в Zbrush, основная работа происходила в нем. Недавно я открыл для себя USD export/import оказалась очень удобная вещь, можно экспортировать весь проект, а при импорте выбирать только те элементы сцены или объекты, которые тебе нужны (в Zbrush USD работает через встроенный плагин).

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

-создаем новую кисть-кривую на основе шифера и черепицы, играемся с настройками расстояния между элементами (Curve Step), и включаем прилипание к поверхности (Snap);

Curve.jpg

Создание кривой

- при помощи Zmodeler инструментом Poly Group (режим выделения Poly loop) расчерчиваем, предварительно отрезанную, верхнюю часть крыши на поперечные разноцветные полоски; затем применим Frame Mesh с включённым Poly groups во вкладке Stroke/Curve Functions и подбирая масштаб размером кисти просто кликаем на появившиеся линии кривых. Удаляем кривые и отделяем черепицу в отдельный сабтул, удаляем лишнее, дублируем, поворачиваем. Также можно добавить немного вариативности в расположение отдельных черепиц (Poly groups /Auto groups и с зажатым контролом в режиме гизмы кликаем на нужный элемент, а затем крутим как хотим).

Flap.jpg

Наложение черепицы на крышу

- повторяем тоже самое для продольной черепицы.

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

Затем добавил детализации очень быстрым способом:

-лучше будет, если изначально геометрия имеет более равномерную сетку, но можно это сделать и позже с помощью ZRemesher с включённым KeepCreases, предварительно накинув crease с небольшим углом 30-45°;

- нужно отделить основные плоскости от боковых и
применить к ним разные шумы, чтобы получить более интересный результат. Применяем Polygroups /Groups By Normals (подбираем нужный угол);

- чтобы шум лег равномерно, без потяжек, необходимо положить его по UV. Делаем ленивую развертку по полигруппам Zplugin/ UV Master (отключаем Symmetry, включаем Polygroups)/ Unwrap;

- накидываем пару сабдивов, включаем Morph Target/StoreMT, он понадобится в дальнейшем для добавления разнообразия шуму;

- маскируем нужные полигруппы и сглаживаем маску, применяем на своё усмотрение какой-то из шумов LightBox/Noise, открываем NoiseMaker во вкладке Surface, выбираем режим проецирования UV и там же настраиваем масштаб и интенсивность шума, применяем, инвертируем маску, применяем более агрессивный шум на грани. Для плоскостей я использовал что-то похожее на асфальт Noise05, для граней использовал Noise09, чтобы получить сколы на краях.

- выбираем кисть Morph (можно включить альфу с жёсткими краями) проходимся в рандомных местах, тем самым добавляя разнообразия на поверхность или полностью приводим геометрию в первоначальное состояние, где это необходимо;

- наносим вручную крупные повреждения используя альфа кисти (для трещин я использовал пак DP-20 Zbrushes), а также прошёлся по граням кистями Clay и Flatten.

Nois.jpg

Проработка черепицы

Бетонные основания крыш вначале пересчитал ZRemesher-ром, по граням прошёлся кистями Clay и Flatten, для узоров использовал кисть DecoCurveDrag, по поверхности прошелся альфа кистями из паков (Jonas Ronnegard, DP-20Zbrushes), чередуя их слоями с кистью Morph. Чтобы трещины выглядели более интересно при помощи Morph усиливаем их на выступающих краях и наоборот немного убираем во впадинах.

Roof.jpg

Проработка крыши

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

Barelef.jpg

Каменные драконьи головы

Таким же методом сделал другие бетонные и деревянные элементы. Для бетона использовал кисти из тех же паков, структуру дерева накладывал слоями чередуя кисти из набора Zbrush Wood и Wood Surface с кисточкой Morph на которую также применял разные альфы.

Wood.jpg

Процесс создания древесины

Таким методом можно добиваться очень реалистичных поверхностей, особенно если не жалеть времени и использовать множество различных альф. Если объект тонкий, в параметрах кисти можно включать BackfaceMask (Brush/Auto Masking/BackfaceMask), чтобы в конце не получить сюрпризов на обратной стороне моделей. Но желательно отключать этот режим, когда начинаете работать над более мелкой детализацией, кисти могут вести себя некорректно при наложении на уже сильно деформированную поверхность.

Wood, Concrease.jpg

Основные элементы для сборки храма

Следующим этапом необходимо было собрать все вместе. Собирал все в Zbrush, так как использовались хайпольки, хоть я и не везде брал самый высокий сабдив, ориентируясь на масштаб и расположение элемента, в финале все равно получилось около 250 мил. полигонов, кроме браша нормально это вывозить другие проги навряд ли смогли бы (при этом использовалась вся доступная оперативная память из 24 Gb общей).

Про подготовку здания к печати расскажу в следующей части.

Hram.jpg

Храм в сборе

А теперь прейдем к Дракону.

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

Начал с головы. В Zbrush есть скелет дракона, он лежит в Light Box/Brush/Insert IMM/IMM Dragon Bones, взял оттуда череп и, используя его в качестве основания, заскульптил вокруг несколько вариантов голов. Использовал в основном кисти Clay, Clay Builup, Dam Standart с включенным режимом Sculptris Pro Mode, для рогов применил кисти Snake Hook и Dam Standart.

Head_Wariation.jpg

Вариации основы для голов

Всегда держал открытыми на втором мониторе анатомические выкладки по драконам.

Dradon anatomy.jpg

Анатомические референсы

Остановившись на одном из перепробованных вариантов, начал более детально его прорабатывать, опираясь на референсы.

Head_Bace.jpg

Проработка головы

Когда основа меня устраила, сделал инсерт кисти шипов и зубов, применил их на поверхность. Для оптимизации объединил все инсерт объекты в один сабтул, продублировал, пересчитал zRemesher-ром, продивайдил и спроджектил (Project/ ProjectAll) на них верхний сабтул, который после удалил. Так мы получаем одинаковую плотность сетки на элементах разного первоначального разрешения.

Head_Insert.jpg

Нанесение Insert-кистей

Теперь пришло время для тушки, как я говорил выше, положение тела я задал в Maya кривой. Сейчас расскажу, как я переносил её в Zbrush:

- в Maya создаем геометрию вокруг кривой с очень маленьким радиусом (Create/Sweep Mesh);

- переносим геометрию в Zbrush и при помощи ZModeler присваиваем одной продольной грани Crease в режиме EdgeLoop Partial;


- Stroke/Curve Functions создаем кривую вдоль неё Frame Mesh (Creased edges), обычной кистью curv кликаем по ней предварительно настроив необходимую толщину разных участков в Stroke/Curve Modifiers с включенным параметром Size;

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

Curve_Body.jpg

Перенос кривой из Maya в Zbrush

Затем перешел к созданию конечностей. Сначала хотел поступить также как с головой (натянуть базовую форму на кости), но потом отказался от этой идеи из-за сильного расхождения в пропорциях. Вначале задал базовые мышцы сферами, затем Desimate и, опираясь на референсы, начал слой за слоем их прорабатывать.

Leg.jpg

Проработка конечностей

Body.jpg

Проработка туловища

После встал вопрос, как наиболее удобно разместить шипы и гребень на спине. В итоге шипы это InsertMesh - Curve с большим расстоянием между объектами с настроенной кривой Stroke/Curve Modifiers, с включенным параметром Size. А с гребнем поступил также как с основным телом: Duplicate туловище, Merge, DynaMesh (для слияния отдельных элементов), Zremesher, отрезал начало и конец, ZModeler/ Crease в режиме EdgeLoop Partial, Stroke/Curve Functions создаем кривую вдоль неё Frame Mesh (Creased edges), кистью CurveStrapSnap кликаем по ней предварительно настроив необходимую толщину разных участков в Stroke/Curve Modifiers с включенным параметром Size, с зажатым контролом, чтобы кривая встала перпендикулярно геометрии, а затем её дальнейшая проработка ручками.

Greben.jpg

Создание гребня

Затем наступил черёд мелкой детализации. Опять вернулся к голове. Альфа кисти использовал из пака CGSphere Dragon, но сильно переделав их, а то первоначальный вариант был очень тяжёлый для компа и не подходил по стилю.

Alphs.jpg

Основные альфа-кисти для мелкой детализации

Сначала наносил большие пластинки, а затем забивал пространство между ними более мелкой чешуёй, если где-то альфы накладывались друг на друга, убирал лишнее кистью морф и дальнейшая мелкая проработка кистью Clay с квадратной альфой. Места крепления рогов проработал кистями Slash3, Blob. Затем такими же методами сделал нижнюю часть головы.

Head Detalization.jpg

Детализация головы

Пришло время заняться рогами, для референсов решил использовать арты Лилит из Diablo (она как раз тогда была в тренде). Базовые формы «волны» сделал кистью Slash 2, для проработки использовал Clay и Flatten, в конце решил нанести царапины. Их взял из пака Orb Brush и применил морф по такому же принципу, как и с трещинами на крыше (уменьшил интенсивность во впадинах, увеличил на выступающих частях).

Horns.jpg

Детализация рогов

Как вы могли заметить, я осознано не использовал симметрию на высоких уровнях детализации, это позволяет немного выиграть в оптимизации при нанесении тяжёлых альф. Чтобы не делать двойную работу возвращаем симметрию, для этого удалил все нижние сабтулы, применил Mirror, продублировал голову, одну из копий пересчитал ZRemesher-ром и через ProjectAll вернул детализацию. Также потом проработал место где был шов симметрии, чтобы скрыть его.

Та же методика на всем остальном драконе, правда уже без симметрии, везде кроме лап. Финальное положение конечностям я задал с помощью масок и инструмента Proxy Pose, это что-то похожее по принципу работы на Decimation Master (очень сильно упрощает геометрию, триангулируя её), но с возможностью вернуться к первоначальному состоянию детализации после выставления в позу.

Full.jpg

Full.jpg

FULL END

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

Print.jpg



Но я хотел бы вкратце рассказать про рендер цифровой модели в Marmoset. Ведь красиво показать цифровую модель тоже необходимо. Рендерить решил в Мармосете, так как в Keyshot мне не нравится работать со светом, а заморачиваться с долгими подстройками Redshift в Maya на тот момент у меня не было желания (возможно позже отрендерю с окружением).

В процессе подготовки модели нет ничего необычного. Для оптимизации решил не рендерить хайпольку. За лоуполь модель просто взял первые дивайды всех сабтулов; развертка - RizomUV (дулам сделать автоанрап, но адекватного результата так и не добившись, пришлось немного порезать ручками). Запечка в Мармосете, запек следующие карты: AO, Cavity, Curve, Normal, Thickness. Когда начал собирать сцену для рендера целиком, столкнулся с ужасными лагами из-за недостатка VRam (рендерилось на GTX 1060 – 3Gb). И тут начался поиск оптимизона и компромиссов. Очень помог вот этот топик на форуме https://polycount.com/discussion/230792/marmoset-4043-low-vram-usage. Но выделю те методы, которыми я пользовался в своем проекте:

- Уменьшил разрядность всех текстур, кроме нормалки, с 16 до 8 bit;
- Для настройки сцены использовал тип видового экрана «Draft Quality», а режим «Full Quality» включал только в конце при финальной настройке;
- В настройках текстур отключал Mipmaps («метод текстурирования, использующий несколько копий одной текстуры с разной детализацией», по логике, включение Mipmaps должно ускорять рендер, но в моем случае это приводило к переполнению буфера видеопамяти);
- Использовал денойзер CPU вместо GPU.

А вообще меня спас один лайфхак. Логика такова – больше всего VRam потребляют две вещи, разрещение и количество текстур. Раз мы не можем уменьшать разрешение без потери финального качества, значит надо уменьшать количество текстур, и я решил действовать на примере паковки текстурных карт для Unreal Engine (карты АО, Rougness, Metallic записываются в разные каналы одной текстуры). Придерживаясь такой логики, я вставил в разные каналы Cavity, Curve и AO карты для каждой из разверток, но не стал останавливаться на этом и создал текстуру, в которой в разных каналах лежали Thicknes карты от разных разверток. И таким способом мне удалось снизить общее количество текстурных карт в четыре раза. Моей видеокарте это понравилось и можно было спокойно работать дальше.

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

Render.jpg

Рендер в Marmoset toolbag

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

Photoshop.jpg

Финальная сборка в Photoshop

И на этом у меня ВСЁ! В сумме на модель ушло около 200 часов.

Full_FullQuality_F.jpg

Full_FullQuality.jpg

Full_FullQuality.jpg

Ещё больше рендеров по Ссылке https://www.artstation.com/artwork/DvWJXo ; https://render.ru/ru/gallery/artwork/235351


P.S. Мое железо:
CPU: AMD FX 8300 (overclock core 4.2 GHz)
RAM: 24 Gb (overclock 2133 MHz)
Motherboard: Asus M5A97R2
GPU: Gigabyte GTX 1060 – 3Gb
SSD: Kingston 500 Gb (Sata III)
HDD: WD Green 1 Tb
Планшет: Wacom CTL-671


P.S. 2: Кому нужен файл модели для печати обращайтесь в личку.

806 0 850 12
3
2023-11-06
Непохож на китайского, голова типично европейского дракона, лапы с 3-мя пальцами в основном японские, у китайских 5 пальцев. У китайских драконов должны обязательно присутствовать части различных животных и обязательно присутствовать в образе жемчужина, как символ источника его магической силы. Рекомендую ознакомиться с мифами, а не только с картинками референсами, так меньше шансов попасть впросак
2023-11-06
. . (dragon209)Непохож на китайского, голова типично европейского дракона, лапы с 3-мя пальцами в основном японские, у китайских 5 пальцев. У китайских драконов должны обязательно присутствовать части различных животных и обязательно присутствовать в образе жемчужина, как символ источника его магической силы. Рекомендую ознакомиться с мифами, а не только с картинками референсами, так меньше шансов попасть впросак

Спасибо за комментарий, как я писал в статье, у меня не было цели четко придерживаться "историчности". Это, если хотите, дракон в восточной стилистике. Про пальцы и жемчужины не знал, можете посоветовать какие-то интересные статьи на эту тему.
2023-11-09
Дима Карпинец (Карпинец Дмитрий)
Спасибо за комментарий, как я писал в статье, у меня не было цели четко придерживаться "историчности". Это, если хотите, дракон в восточной стилистике. Про пальцы и жемчужины не знал, можете посоветовать какие-то интересные статьи на эту тему.

Могу посоветовать книгу "Драконы в мифологии Китая и Японии", автора точно не могу вспомнить, Ещё есть Маслов востоковед у него есть книга "Укрощение драконов". А если попроще можно почитать статью Ленского "Бестиарий: Драконы", хотя там больше про игровых в системе d&d
RENDER.RU