Создание миски с лапшой Даосяо с помощью Substance 3D
Чао Чан пришёл к нам, чтобы рассказать о создании миски лапши, нарезанной китайским ножом. Он объяснил, как использовал шейдер Principled BSDF, чтобы сделать так, будто фрикадельки, кусочки говядины и сушёный тофу впитали бульон.


Введение
Здравствуйте, все! Я Чао Чан, художник по материалам из Шанхая, в настоящее время работаю полный рабочий день в игровой компании. В университете я специализировался на цифровом медиаискусстве с упором на игровое искусство. После окончания учёбы в 2020 году я пришёл в игровую индустрию, где два года работал художником по 3D-моделям, прежде чем перейти на нынешнюю должность художника по материалам. Сейчас я участвую в разработке многоплатформенной игры с открытым миром.
Впервые я познакомился с Substance 3D Designer, когда мой университетский профессор показал мне материал капель дождя, который он создал с помощью этого программного обеспечения. В учебной программе моего университета мы начинали с 3D-модели, лепили её в ZBrush, затем выполняли ретопологию, запекание и, наконец, ручную покраску текстур.
Когда я впервые увидел, как нодовый подход может напрямую генерировать текстуры материалов, получая высококачественные результаты, которые к тому же были легко настраиваемыми, я был поражён. У меня была только одна мысль: «Это так круто, я хочу освоить это».
С этого момента я начал искать онлайн-туториалы, изучать комбинации узлов в свободное время и учиться понемногу. Хотя процесс часто был утомительным, я упорствовал. Выполнение каждого небольшого практического упражнения давало мне постепенное чувство выполненного долга, которое поддерживало мою мотивацию.
Мотивация для этого произведения возникла из моего желания исследовать предмет, выходящий за рамки моей обычной работы. Поскольку я в основном профессионально создаю материалы для окружающей среды, я хотел бросить себе вызов чем-то другим. Примерно в то время, когда я следил за своим весом, друг из моего родного города в Шаньси прислал мне фотографии местной кухни. Это вызвало у меня идею: раз я не могу это есть, почему бы не создать это вместо этого?
Первым шагом, конечно же, был сбор референсов. К счастью, в Интернете относительно легко найти крупные планы фотографий еды. Я даже наткнулся на обучающие видеоролики о приготовлении лапши Даосяо с помощью ножа, из которых я запечатлел несколько ключевых шагов в процессе приготовления лапши в качестве наглядных пособий.

Ингредиенты для лапши Даосяо
Моя общая идея заключалась в том, чтобы сначала создать полную карту высот, которая включала бы все виды лапши и гарниров. Затем я раскрашивал их шаг за шагом, используя соответствующие маски, а затем делал соответствующую карту шероховатости. Для карты нормалей я напрямую извлек её из информации о высоте с помощью узлов.
Затем я начал производственный процесс. Прежде чем начать, я вспомнил, что у Дэниела Тигера есть урок по лапше, но прошло так много времени с тех пор, как я смотрел его в последний раз, что я больше не мог чётко вспомнить детали. Поэтому я посмотрел его снова, чтобы усвоить приёмы приготовления лапши, и внёс соответствующие изменения, основываясь на его подходе.
Чтобы сохранить особенность лапши, которая была бы сбрита полосами с теста с помощью ножа, я изменил их форму, чтобы она была более плоской, и сохранил выступающие следы на их поверхности. Затем я разделил лапшу на нижний, средний и верхний слои, чтобы имитировать эффект прижатия слоёв друг к другу.
Я извлек базовую форму лапши, используя комбинацию Perlin Noise → Directional Blur → Quantize Grayscale → Edge Detect. Затем я применил к этому основанию несколько базовых корректировок Warp. Наконец, я продублировал несколько групп узлов, внёс в них изменения и наложил их один за другим.


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

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



Следующим продуктом, который я хотел добавить, был сушёный тофу. Его делают путём застывания и прессования соевого молока, поэтому его базовая форма довольно правильная. Чтобы добиться лучшего представления высоты во время создания, я использовал узел Height Extrude, чтобы имитировать его преобразование из плоского прямоугольника в трёхмерную форму.
Изменение яркости на обоих концах также красиво имитирует эффект того, что тофу наполовину погружён в лапшу, частично лежит сверху, а частично зарыт под ней. Наконец, я добавил несколько мелких текстур поверхности, образовавшихся в процессе прессования. На этом в основном всё было готово.

Далее давайте добавим в лапшу мясные кусочки. Я решил создать кусочки говядины, так как мышечные волокна проще представить (хотя настоящее тушёное мясо может выглядеть не совсем так). Я начал с Cube 3D, чтобы создать прочную базовую форму, применил некоторое искажение для разнообразия, а затем наложил Cell Map для имитации текстуры мышечных волокон.
Наконец, я использовал Shape Splatter для распределения мясных кусочков среди лапши. (Была применена маска, чтобы определить область распределения и предотвратить чрезмерное наложение с ранее размещёнными элементами, такими как яйцо и фрикадельки.)

Для распределения используйте несколько узлов Shape Splatter, добавляя мясные кусочки постепенно. Такой пошаговый подход обеспечивает гораздо лучший контроль над окончательным размещением.

Приготовление супа
Часть с лапшой окончена. Теперь пора приступить к приготовлению супа. Сначала я хотел использовать узел Water Level, но быстро понял, что это не лучший подход. Я решил создать отдельный материал для супа и скомпоновать его на этапе рендеринга позже.
Концепция была довольно простой: плоская плоскость из полупрозрачной жидкости, покрытая слоем мелкого жира, и украшенная несколькими листьями кинзы и измельчённым зелёным луком.

Чтобы добиться более реалистичного эффекта жира, я внёс определённые корректировки в слой жира в каналах Color, Roughness, Specular и Translucency, а не следовал строго стандартному рабочему процессу PBR.
Рендеринг
Когда все карты текстур были готовы, пришло время перейти к этапу рендеринга. По предложению моего руководителя группы я использовал Cycles в Blender для финальной презентации. Это был мой первый опыт рендеринга в Blender, так что поначалу я столкнулся с некоторыми трудностями и мне пришлось искать несколько обучающих видеороликов для начинающих, чтобы освоить основы.
К счастью, в настоящее время доступно множество обучающих видео. Как только я понял основы затенения материалов, я смог начать соединять простые узлы и корректировать результаты.
Я оставил сцену очень простой, используя только несколько базовых моделей: стол, миску и две высокополигональные круговые плоскости. Я планировал создать модель лапши напрямую, используя смещение высоты (сохраняя оси X и Y равномерными, с небольшими вариациями только по оси Z).
Нижней круговой плоскости был назначен материал для лапши, а другой — материал для супа. Затем в шейдере я подключил карту высот ко входу смещения, что позволило плоскости деформироваться на основе информации о высоте.


Теперь давайте формально войдём в интерфейс шейдера. Я импортировал все необходимые карты текстур и несколько масок (маски импортируются здесь, чтобы я мог напрямую настраивать такие элементы, как Color и Roughness, для простых компонентов в шейдере, что исключает необходимость переключаться между программами, например, маски для фрикаделек и листьев кинзы).

(Красная коробка содержит базовые карты текстур, а жёлтая — корректировки этих карт, такие как цвет и контраст. Хотя это может показаться беспорядочным, лежащая в основе логика довольно проста.)
Я использовал шейдер Principled BSDF, к которому можно напрямую подключить большинство карт текстур. Для этой работы с материалами после подключения основных цветов, нормалей, шероховатости и смещения высоты важно попробовать включить рассеивание под поверхностью.
Это значительно улучшит общий эффект материала, особенно сделает фрикадельки, куски говядины и сушёный тофу более интегрированными, как будто они впитали бульон.


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


Для настройки освещения я не делал ничего особенного. Я просто настроил текстуру окружения HDRI и один точечный источник света. Наконец, я поэкспериментировал с различными настройками управления цветом в свойствах рендеринга и выбрал то, что выглядело лучше всего визуально. Это, в основном, охватывает все шаги, которые я сделал в Blender.

Теперь я хотел бы поделиться подходом, над которым я много думал и тестировал во время производства, но в итоге не использовал в финальной работе. Лапша, нарезанная ножом Шаньси, отличается от обычной лапши: её индивидуально строгают из блока теста специальным лезвием, в результате чего получается плоская ленточная форма, а не круглая. Это создаёт сложные естественные изгибы и укладки, что стало первой серьёзной проблемой, с которой я столкнулся в начале процесса создания.
Из обсуждений с коллегами я узнал, что инструмент Spline потенциально может имитировать этот эффект. Однако во время фактической реализации я понял, что хотя этот метод может хорошо работать для создания нескольких отдельных лапшинок, он становится проблематичным при работе с большим количеством лапши или узорами с чередованием плиток.
Сложные пересечения и трудноконтролируемые изменения высоты усложнили бы мой последующий рабочий процесс, потребовав обширного использования SVG-масок для исправления проблем, что сделало бы дальнейшие корректировки довольно неудобными.
Кроме того, во время тестирования я обнаружил, что слишком большие вариации на самом деле делают лапшу слишком хаотичной, а результаты рендеринга не были визуально привлекательными. Тем не менее я всё ещё считаю, что это ценный подход, которым стоит поделиться, даже если он не был использован в финальном рендеринге.




Заключение
В заключение, то, что кажется простой миской лапши, часто оказывается совсем не таким, как вы ожидали, когда начинаете создавать её. Только в процессе производства вы обнаруживаете реальные проблемы, которые нужно решить, бесчисленные неожиданные детали, требующие итеративной отладки и тестирования. Даже на этапе финального рендеринга вы часто будете возвращаться к файлу проекта, чтобы внести коррективы.
При обучении по учебным пособиям нет необходимости заставлять себя запоминать каждую деталь. Просто запомните, что делает каждую технику исключительной. Одно это впечатление может позже помочь вам преодолеть подобные трудности. Затем, исходя из ваших реальных потребностей, вы можете соответствующим образом адаптировать эти методы и включить их в свою работу.
Для новичков мой совет — смотреть много обучающих роликов, но, что более важно, действительно пробовать делать работу самостоятельно. Поставьте перед собой достижимые цели, и чувство выполненного долга, которое вы получите от их выполнения, будет поддерживать вашу мотивацию. Затем просмотрите свою работу, чтобы определить области для улучшения, прежде чем переходить к следующей задаче.
Чао Чан, художник по материалам
Интервью проведено Эммой Коллинз
Автор: Chao Chang
Материал подготовлен на основе статьи 80.lv. Перевод — Skills Up.