Демоверсии
Блог
Maya
28 Апреля 2020

Создание фотореалистичного 3D-страуса

Представляем breakdown создания фотореалистичного сомалийского страуса в исполнении художника Юрия Дулича. Поэтапный разбор проекта из первых уст. Понеслась!

Autodesk

Предпроизводство

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

Autodesk

В ходе этого процесса для меня открылось много интереснейших фактов о сомалийском страусе. Я просматривал фото- и видеоматериалы, макросъемки, документальные фильмы, фотографии перьев, анатомические атласы... Словом, все, что могло пригодиться. Мое главное правило в работе – ничто никогда не бывает лишним.

Autodesk

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

Моделирование

Как всегда, я начал в ZBrush, со сферы в режиме dynamesh. В Maya подготовил блокинг, используя простые примитивы, которые задают объем тела. Далее вылепил объем внешних мышц. Я выбрал для страуса Т-образную позу, чтобы было легко складывать крылья и в то же время иметь контроль над основными перьями. Затем еще немного усовершенствовал свою скульптуру.

Autodesk

Когда объем и пропорции были точно подобраны, я сделал ретопологию в TopoGun и приступил к UV.

Autodesk

Всегда использую UDIM.

Autodesk

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

Autodesk

Чтобы сэкономить время, я купил готовые сканы кожи ног и подготовил «альфа-текстуры», которые использовал в ZBrush. Остальные детали, такие как большие складки кожи, части головы и поры, были сделаны вручную. Для клюва и когтей использовался генератор поверхностного шума. После окончательного скульптинга я экспортировал их из ZBrush в виде 32-битных displacement-карт. Я также экспортировал регулярное смещение оттенков серого для различных уровней разделения и карты полостей для будущего текстурирования.

Autodesk

Autodesk

Autodesk

Autodesk

Autodesk

Груминг

Это была самая веселая и кропотливая часть процесса. На этой стадии я использовал Yeti. Имея опыт работы с перьями, я уже знал некоторые технические нюансы, такие как их длину, приблизительную плотность и структуру. Я использовал упрощенный груминг и scattering, так как не было необходимости контролировать каждое перо в отдельности. Тот факт, что перья были растрепаны, на самом деле облегчал процесс и делал его быстрее.

В этот момент я нарисовал основные маски для груминга, используя метод additive RGBA mask (подробнее о нем можно посмотреть здесь).

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

Autodesk

При создании strands я всегда применяю свой итерационный метод. Я использовал упрощенный грум для большей детализации и сгенерировал ноды Yeti fiber, которые затем были преобразованы в грум. И повторял это до тех пор, пока не получал желаемого результата (обычно я останавливаюсь на 3-4 итерациях). На этом этапе я решил, на сколько узлов Yeti разделю модель и сколько узлов грума создам. Всё это в конечном итоге повлияет на объем кэша. У моего страуса оказалось 8 нод грума и 5 нод Yeti.

Autodesk

Перья

Я не люблю использовать полигональные плоскости с текстурой. Вместо этого предпочитаю имитировать перья на основе волокон. Мне нравится думать, что в этом и заключается секрет моего фотореалистичного результата. Для создания перьев я использовал плагин jcFeather for Maya и стандартное перо Yeti. Я сделал это, чтобы более тонко подготовить перья к анимации. Таким образом, каждый волосок в пере может реагировать на свет и правильно расфокусироваться на макрорендерах, как это было бы в природе.

Autodesk

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

Autodesk

Я использовал Expressions – необходимый набор перьев подбирался автоматически в зависимости от длины пряди и их положения на теле. На рисунке ниже показаны различные наборы перьев, организованные по цвету.

Autodesk

Каждый показанный набор состоит из 6-8 перьев, которые случайным образом сортируются по expression. Я разработал двухосевую модель для изменения атрибутов (таких как scraggle, bend и т. д.) по длине перьев и на каждом отдельном волокне внутри пера путем раскрашивания атрибутов в ноде грума.

Риггинг

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

Autodesk

Я использовал Advanced Skeleton для Maya.  На этом этапе я разделил проект на reference-сцены: сцена с ригом, сцена с грумом и сцена с шейдерами. При сборке использовался Alembic и кэш Yeti.

Текстуры и шейдинг

Текстурирование тела было сделано в Mari и в основном ограничивалось ручной росписью. Я смешал dispacement, cavity-текстуры и разнообразные мраморные текстуры для кожи, клюва и когтей с различными шумовыми процедурными текстурами. Я также рисовал технические текстуры и маски для SSS.

Autodesk

Autodesk

Autodesk

Забавный факт: в Yeti вы можете создавать координаты текстуры для любого объекта на основе волокон с помощью пользовательских UVs и использовать их позже с любым движком рендеринга. Я использовал эту функцию. Вы можете проверить текстуры, которые я нарисовал для меланина ниже. Я также использовал процедурный шум Arnold.

Autodesk

В общей сложности было создано 24 текстуры для 11 комплектов перьев.

Шейдинг

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

Autodesk

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

Autodesk

Каждый слой перьев и каждое отдельное перо имели свой собственный идентификатор. Затем я передал всю эту информацию от Yeti и использовал ее в массивной системе шейдинга.

Autodesk

Рендеринг и постобработка

Я склонен изображать животных в тёмном пространстве, потому что хочу, чтобы фокус был сосредоточен на самой модели. Поэтому я повторно использовал «студию» для моего субарктического проекта «Большая рогатая сова». Лишь добавил к ней несколько деталей для реализма, таких как грязь у ног страуса. Наконец-то проект ожил! Я создал light-риг для каждой позы. Финальная сцена рендеринга была собрана из reference-сцены с грумом + шейдинг, mesh + поза и освещение + студия.

Autodesk

Я всегда стараюсь добиться хорошего результата на рендере, чтобы сделать минимальную постобработку. Я отрендерил необходимые RGB-маски, position, иногда normal и всегда Z depth пасы.

Autodesk

Наконец, я сделал свою постобработку и цветовую градацию во Fusion.

Autodesk

Autodesk

Autodesk

Autodesk

\Autodesk

Интересная статистика проекта:

Всего перьев – 9 196

Всего волокон – 3 427 455

Всего комплектов перьев – 11

Всего текстур перьев – 24

Поликаунт Zbrush-модели высокого разрешения – 43.18 М

Рендеринг 8К – около 17 часов

 

поделиться
Для сбора статистики по работе PointCGI, мы cобираем данные о пользователях. Используя PointCGI, вы соглашаетесь с нашей политикой обработки персональных данных, включая технологию cookie.