Хабрахабр

[Перевод] Искусство создания органических 3D-моделей: субдермальные шейдеры

Daniel Bauer рассказал о создании реалистичной модели зубов и субдермальных шейдеров в ZBrush, Toolbag и Substance Painter.

Ресурсы

Свой проект я начал со сбора референсов в Google, Pinterest и Youtube.

Для упорядочивания своих ресурсов я пользуюсь PureRef. Сегодня можно найти огромное изобилие ресурсов и проблема заключается в фильтрации такого объёма информации. Сначала на моей доске не было CGI, потому что я стремился черпать вдохновение из реальных примеров. На таких досках можно хранить технические подробности, например, анатомические размеры, или значения отражаемости и изображения зубов.

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

Скульптинг

Для скульптинга основных объёмов я использовал ZBrush. Я не строго придерживался формы, потому что хотел, чтобы образ хорошо читался на расстоянии. Очень часто я сильно отдалял модель, чтобы проверить её. Для получения удовлетворительного результата мешу пришлось претерпеть множество итераций. Кстати, можно воспользоваться режимом ZBrush «see-through» и сравнить свой скульптинг с 3D-сканами на Sketchfab.

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

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

Многие люди испытывают трудности с единицами измерения ZBrush, поэтому дам совет: Я использовал transpose line ZBrush, чтобы измерить каждый зуб и привести их все к верному размеру.

  • Добавьте в сцену вспомогательный объект единичного размера, перенесите его с помощью GoZ в 3D-пакет, отмасштабируйте до 10мм и верните через GoZ обратно в ZBrush.
  • Теперь перетащите Transpose Line с одной стороны куба на другую и задайте масштаб в 1 Unit. Так вы сможете использовать Transpose Line, которая считывает точные значения.

Я скульптил каждый зуб по отдельности и это даёт мне полный контроль над запеканием в Toolbag или в Substance Painter. Если каждый инструмент (subtool) будет храниться отдельно, то это обеспечивает гибкость при необходимости модифицирования зуба. Когда я понял, насколько сложны на самом деле человеческие зубы, этот метод позволил мне прислушиваться к отзывам других художников и без проблем устранять недостатки форм. В первом проходе некоторые детали преувеличены, а другие отсутствуют:

Совет: из-за особенностей реализации подразделений (subdivisions, SD), при возврате к уровню 1 SD меш может сжаться. Это приводило к нежелательному эффекту, ведь мои зубы, дёсны и blend mesh должны идеально сочетаться. Я написал макрос, сохранявший morphtarget меша перед каждой командой subdivide и восстанавливающий его исходный объём.

Скрипт можно скачать отсюда. Я использовал этот макрос как мою основную команду subdivide, привязанную к CTRL+D.

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

Плавность расположения полигонов зубов и дёсен помогает blendmesh сохранить все сложные формы.

С самого первого уровня SD я стремился к созданию чёткого силуэта зубов: Всегда нужно поддерживать равновесие между низкополигональностью и количеством опорных рёбер.

Вот пара хороших ресурсов по топологии:
Закончив с топологией и скульптингом, я импортирую decimated-меши в Marmoset Toolbag. Это помогает получить общее представление о внешнем виде модели при разных моделях освещения.

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

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

Мы используем их только для запекания. В ZBrush можно нарисовать тонкие трубочки в полостях, которые будут обозначать скопления слюны. Это пригодится в рендерере реального времени, потому что во впадинах мы получим красивые отражения, как показано на этом изображении: Таким образом мы получим плотно прилегающий вогнутый blendmesh плюс нормальную карту, напоминающую выпуклую форму.

UV-развёртка

Можно импортировать меши в 3ds Max или другое похожий пакет для создания развёртки и планировки текстуры. Мне хотелось сохранить UDIM-развёртку, чтобы иметь готовую к продакшену модель на разных платформах. Я перенёс через GoZ мои инструменты 3ds Max для указания швов разрезов, а затем выполнил «quick-Peel» и операцию упаковки. Затем вернул всё через GoZ обратно в ZBrush, чтобы воспользоваться его мощным инструментом создания развёрток («use existing seems»). Это очень важно, если вы хотите экспортировать карты смещений из ZBrush.

Совет: многое о развёртках можно узнать у Тима Бергхольца.

Раскрашивание текстур и смещение

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

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

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

Я продолжал настраивать эту карту даже в процессе написания статьи, поэтому получил новые отзывы. Для большинства полостей я использовал чуть более сильное значение roughness, но исключил полости зубов, в которых значения шероховатости ниже. Мне нравится завершать проекты, но для повышения своих навыков необходимо относиться к себе критически и быть открытым к новым идеям.

Совет: создайте тёмно-серый цвет во всех наборах текстур и переключайте режим смешивания на «replace», чтобы сразу же проверять поведение карты roughness при различных условиях освещения.

  • Непрозрачность для blendmesh

Сначала выберите для этого набора текстур отдельный шейдер. Идеальные результаты получаются с шейдером «metal/rough-with-alpha-test». К другим наборам текстур примените «skin-shader».

Добавьте в «Texture Set Settings» канал opacity и создайте fill layer внизу стека слоёв с нейтральными нормалями и обнулённой информацией об opacity.

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

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

Совет: экспортировать свою маску можно через меню набора текстур или просто нажав правую клавишу мыши на стеке маски и выбрав «Export mask to file».

  • Displacement

Карты смещений я экспортировал из ZBrush.

Я использовал Multi Map Exporter, чтобы объединить отдельные инструменты с относящимися к ним тайлам UV, использовав следующие параметры: В нём есть удобная функция, анализирующая инструменты и выравнивающая карту смещений, чтобы покрыть все высокие и низкие значения.

Шейдер

Для каждого набора текстур я создал в Marmoset Toolbag свой шейдер. Это позволило мне использовать разные параметры шейдеров для языка, зубов и дёсен.

В Toolbag есть ползунки «Scale» и «Scale-Center», и я воспользовался ими, чтобы подчеркнуть эффект смещения: Перед настройкой шейдеров SSS и смещения важно правильно задать масштаб сцены.

  • Шейдер зубов

В Toolbag есть хороший подповерхностный шейдер, который при наличии качественных карт может создавать отличные результаты. Чтобы добавить вариативности в запечённую карту нормалей, я использовал карту нормалей деталей. По своей природе зубы кажутся просвечивающими (translucent), и в достижении этого эффекта сильно помогает хорошая карта просвечиваемости (translucency map). Я запёк в Substance Painter карту толщины и изменил её в соответствии со своими потребностями.

Вот параметры моего шейдера для зубов:

Модель затенения

Я считаю, что самое важное в шейдере зубов — это модель отражения, для которой я выбрал параметр «Refractive». Индекс преломления определяет, насколько путь луча искажается или преломляется при попадании в материал. Очень важно придать материалам правильный внешний вид. Изучив вопрос, я узнал, что IOR дентина равен 1.540.

4. Чтобы подчеркнуть сниженные значения отражаемости во впадинах, я добавил в шейдер карту полостей и передвинул ползунок «specular cavity» на 0. Ползунок Diffuse Cavity я оставил на нуле, потому что моя Albedo map уже содержала заливку полостей красным цветом.

Вот сравнение между моделями преломлённого и зеркального отражения:

Совет: посмотрите объяснения модели зеркального отражения в видео Джо Уилсона и Ли Деновалда:

  • Шейдер дёсен

Физически верное значение зеркального отражения для кожи примерно равно 0.028. Это стало для меня хорошей опорной точкой.

07. Для дёсен я увеличил этот показатель до 0. Придать результату убедительности может небольшой Fresnel. Здесь нужно придерживаться низких значений, иначе шейдер может создать эффект металла.

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

Совет: здесь можно узнать о техниках реалистичного рендеринга кожи в реальном времени.

  • Шейдер слюны

Для создания убедительной слюны в Toolbag можно использовать разные режимы прозрачности.

Вот параметры шейдера: Для идеального смешения между зубами и дёснами я использовал метод Refraction with Dithering.

Результат, полученный после использования описанных техник:

Заключение

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

Это был очень увлекательный проект. У него всё ещё есть «шероховатости», но он стал отличным обучающим процессом по анатомии и материалам.

Упрощённую модель для своих проектов можно скачать здесь.

Надеюсь, эта статья была вам полезна. Спасибо за чтение!

Об авторе

Меня зовут Дэниел Бауэр, я 3D-художник и специализируюсь на моделировании органики. Свою карьеру я начал в небольшой студии 2D-анимации, где и познакомился с магией 3D-моделирования. Карьерный путь привёл меня к решению таких задач, как затенение и моделирование для CGI в области автомобилестроения. В свободное время я полюбил заниматься моделированием органики и продолжаю это делать и по сей день.

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

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

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»