Геймдев
#статьи

Что такое hard-surface-моделирование и как сделать его в Blender, минуя стадию high poly

Доклад старшего 3D-художника Педро Аугусто из Ten Square Games.

Иллюстрация: Кадры Blender / YouTube / Anniе для Skillbox Media

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

На Blender Conference 2023 Педро Аугусто, старший 3D-художник Ten Square Games, поднял тему бюджетного hard-surface-моделирования в Blender. На примере своих работ он поделился с коллегами опытом создания проработанных 3D-моделей военных самолётов с помощью отрисовки текстурных карт, не прибегая к стадии high-poly-моделирования. При этом художник подробно объяснил весь процесс — от поиска референсов до специфики рендеринга истребителей в Cycles. Редакция «Геймдев» Skillbox Media делится основными тезисами специалиста.

Полная версия доклада Педро Аугусто на Blender Conference 2023

Педро Аугусто

3D-художник родом из Бразилии. Своей профессии он посвятил уже более 20 лет. В начале карьеры он создавал контент для рекламных агентств, а затем стал работать в игровой индустрии. В основном Педро специализируется на hard-surface-моделировании, но иногда работает и с органическими объектами. В настоящий момент художник переехал в Польшу и работает в Ten Square Games. Он делает ассеты военных самолётов, а также занимается рендерингом промоматериалов для мобильного авиасимулятора Wings of Heroes в сеттинге Второй мировой.

И хотя для мобильных игр характерно наличие низкополигональных моделей, истребители в Wings of Heroes — это визитная карточка игры. Поэтому основная задача Педро — добиться максимальной проработки hard-surface-моделей, несмотря на небольшое количество полигонов.

Изображение: Педро Аугусто / Artstation

Что такое hard-surface-моделирование

Hard Surface, или моделирование твёрдых поверхностей и тел, — это вид моделирования объектов, основанный на чётких геометрических формах, которые придают объекту визуальную прочность и жёсткость.

Метод Hard Surface применяют для дизайна технических конструкций — оружия, брони, транспорта, различных устройств и даже элементов интерьера в научно-фантастическом стиле. В отличие от органического моделирования (Organic Modeling), сфокусированного на создании образов людей, животных, растений и других сущностей, в Hard Surface отсутствуют плавные очертания, складки и другие виды деформации полигональной сетки.

Что касается анимации, то объекты, созданные методом Hard Surface, или статичны полностью, или подвижны лишь частично, при этом в последнем случае все движения будут механизированы. К таким видам анимации можно отнести вращение шестерёнок, процесс открывания кабины, точный угол поворота плоскостей и так далее.

Альтернативный подход к Hard Surface

Однажды Педро Аугусто решил провести эксперимент и создать модель истребителя, используя при этом только инструменты Blender. И оказалось, что можно добиться желаемого результата в кратчайшие сроки, не прибегая к помощи сторонних программ и сохранив при этом качество детализации.

Кадр: Blender / YouTube

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

Обычно пайплайн 3D-художников реализован следующим образом: специалист получает концепт-арты и, ориентируясь на них, делает высокополигональную модель с большим количеством деталей, затем на её основе он создаёт низкополигональную модель, строит топологию и UV-развёртку, а после — запекает нормали с высокополигональной модели и дорабатывает остальные текстурные карты.

Краткое описание стандартного пайплайна в 3D-моделировании
Кадр: Blender / YouTube

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

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

Схема пайплайна Педро
Кадр: Blender / YouTube

Чтобы сразу получить low-poly-модель хорошего качества, необходимо:

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

Поиск референсов

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

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

Но есть и другой тип чертежей, на которых помимо проекций транспорта есть ещё и легенды. Анализируя их, можно понять форму и расположение некоторых деталей. Для 3D-моделирования истребителей Педро предпочитает брать за основу именно такие чертежи.

На чертеже слева модель самолёта просто представлена в разных ракурсах. Справа — чертёж с легендой, которая показывает форму крыла и фюзеляжа в разрезе
Кадр: Blender / YouTube
На схеме показано, что объём крыла к краю постепенно сужается и сужение происходит в местах, где расставлены соответствующие метки
Кадр: Blender / YouTube

Сборка деталей

На следующем этапе Педро начинает выравнивать оси по чертежу, взяв за основу плоскость. В Режиме редактирования (Edit mode) он отмечает вершины форм, представленные в легенде, и объединяет их функцией «Связать мостом петли рёбер» (Bridge Edge Loops). Этим способом можно быстро сформировать полигональную сетку крыла.

На коллаже ниже показано, как выглядят вершины из чертежа-референса в Объектном режиме (Object Mode) и в Режиме редактирования (Edit Mode). Функция «Связать мостом петли рёбер» (Bridge Edge Loops) применена дважды. В первый раз — при объединении вершин, а во второй — после выделения всех образованных петель.

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

Кадр: Blender / YouTube

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

Кадр: Blender / YouTube

Процесс моделирования

Если говорить о техниках моделирования в целом, то здесь можно выделить три основных метода:

  • традиционное моделирование, то есть стандартные манипуляции с вершинами, рёбрами и гранями (перемещение, вращение, экструдирование и так далее);
  • скульптинг / булевы операции с последующей ретопологией сетки.
  • NURBS-моделирование.

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

Преимущества создания сложных деталей с использованием модификатора Логический (Boolean)
Кадр: Blender / YouTube

Кроме того, Педро отмечает, что булевы операции можно выполнять ещё быстрее в приложениях, основанных на твердотельном моделировании. Чаще всего его можно встретить в программах, специализирующихся на САПР. К тому же в них удобно создавать комплексный рельеф за счёт экструдирования и вдавливания поверхностей. Минус в том, что при экспорте в другие программы могут возникнуть проблемы с внесением изменений в полигональную сетку.

Примечание. Более подробную информацию о специфике твердотельного моделирования можно узнать из доклада Педро на DevGAMM 2023 Gdańsk. Его содержание по смыслу схоже с выступлением на Blender Conference 2023, но больше сфокусировано на 3D-моделировании оружия.

Пример твердотельного моделирования. Процесс работы с булевыми операциями в Fusion 360 и финальный вид модели, экспортированной в Blender
Видео: Blender / YouTube

В настоящий момент художник уже не использует стороннее ПО, так как процесс интеграции в другую программу отнимает больше времени. К тому же на сегодняшний день в Blender есть все необходимые инструменты для работы. Тем не менее Педро считает твердотельное моделирование хорошей альтернативой полигональному.

Если же говорить о булевых операциях в контексте полигонального моделирования, то процесс выглядит следующим образом. Построив основную форму, Педро производит необходимые отсечения модификатором Логический (Boolean), добавляет модификатор Триангуляция (Triangulate), а затем делает ремеш модификатором Упрощение (Decimate). Последний хорошо справляется с задачей, если у модели изначально настроены группы сглаживания, которые можно откорректировать модификатором Сглаживание (Smooth).

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

Процесс полигонального моделирования в Blender
Кадр: Blender / YouTube

Таким образом получается low-poly-модель без стадии high poly. Но как создать иллюзию проработанного объекта со множеством мелких деталей? Для начала стоит понять, где именно должны располагаться участки с высокой детализацией. И для лучшего понимания Педро показал, как это выглядит на практике, представив полный цикл создания одной из моделей истребителей с нуля.

Создание военного самолёта в Blender

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

Спецификация

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

  • 10–15 тысяч треугольников;
  • разрешение текстур 2048×2048 (2K);
  • метод UDIM использовать нельзя, а это значит, что все будущие текстуры объекта будут находиться в одном UV-пространстве.

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

Зелёным цветом на схеме выделены подвижные детали будущего самолёта
Кадр: Blender / YouTube

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

На следующем слайде представлен объект, созданный с помощью метода, который описан в предыдущей главе. Используя чертёж как референс, Педро построил полигональную сетку из вершин и добавил дополнительные детали с помощью модификатора Логический (Boolean).

В видео показаны примеры булевых операций и процесс исправления полигональной сетки после ремеша
Видео: Blender / YouTube

Подготовка UV-развёртки

Далее наступает этап UV-развёртки, где нужно учитывать специфику модели и её роль в проекте.

Итоговый вид полигональной сетки после правок и UV-развёртки
Кадр: Blender / YouTube

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

Площадь тех или иных UV-островов зависит от перспективы игрока. Например, большую часть игрового времени в Wings of Heroes игрок наблюдает только заднюю часть самолёта. Именно поэтому UV-острова для хвоста и задней части крыльев (отмечены оранжевым и красным на изображении ниже) занимают больше всего места в UV-пространстве. Соответственно, текстуры на них будут более высокого разрешения.

Кадр: Blender / YouTube

Готовую модель отсматривает ведущая художница студии. Руководитель Педро проживает в Италии, поэтому проверка качества происходит дистанционно. Педро отсылает ей рендеры модели в различных перспективах, в числе которых — скриншоты с полигональной сеткой, для демонстрации топологии. Кроме того, художник отправляет файлы с анимацией отдельных деталей самолёта.

Примеры контента, который Педро отсылает своему руководителю на проверку
Кадр: Blender / YouTube

Запекание дополнительных деталей

После того как проект одобрен, Педро приступает к этапу запекания нормалей. Так как модель низкополигональная, у неё не будет плавных фасок по краям. Но можно прибегнуть к хитрости и создать имитацию среза в режиме шейдеров, а затем запечь полученный результат. Для этого необходимо соединить нод Фаска (Bevel) с параметром Нормаль (Normal) в шейдере Принципиальный BSDF (Principled BSDF), после чего запечь карту нормалей — с этим поможет вкладка Запекание (Bake) в настройках рендера Cycles.

Процесс запекания фаски в карту нормалей
Кадр: Blender / YouTube
Итоговый вид поверхности с подключённой картой нормали с запечённой Фаской (Bevel) и без неё
Видео: Blender / YouTube

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

Пример отрисовки карты высот в реальном времени
Видео: Blender / YouTube

Процесс во многом схож с тем, что предлагает Substance Painter, но в Blender он реализован немного иначе. Во время прорисовки Педро столкнулся с тем, что чёрно-белая карта высот должна быть 32-битной, иначе она не будет работать. На отрисовку всей поверхности самолёта у художника ушло примерно полдня. Референсы направления линий он частично брал из ранее подобранных чертежей. В итоге у него получилась карта высот, полностью отрисованная в Blender.

Готовая карта высот
Кадр: Blender / YouTube

Эту карту высот, а также ранее запечённую карту нормалей (с фаской) Педро присоединил к ноду Карты неровностей (Bump). А затем запёк их вместе в одну карту нормалей.

Общий принцип запекания карты

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

Кадр: Blender / YouTube

Примечание

Линейный свет (Linear Light) находится во второй вкладке нода Смешать (Mix Color).

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

Финальный результат
Кадр: Blender / YouTube

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

Художник отмечает, что моделирование без этапа создания high poly стало занимать у него гораздо меньше времени. Например, представленный ниже большой грузоподъёмный самолёт Педро сделал за 10 дней, в то время как его коллега потратил четыре недели на создание аналогичной модели, придерживаясь стандартного пайплайна.

Кадр: Blender / YouTube

Из этого следует, что метод Педро позволяет моделировать сложные объекты методом Hard Surface с большим количеством деталей, не прибегая к предварительному этапу high-poly-моделирования.

Текстурирование

После запекания карты нормалей необходимо подготовить остальной набор текстур — альбедо, Ambient Occlusion, шероховатость и так далее. В теории их можно сделать в Substance 3D Painter, но в Blender можно добиться аналогичного результата с аддоном Kit Ops. В нём есть наборы готовых шейдеров, которые по свойствам идентичны «умным» материалам Substance 3D Painter. С их помощью можно быстро создавать текстурные карты с желаемыми параметрами Metallic / Roughness.

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

В видео ниже Педро подключил к шейдеру два материала из коллекции Kit Ops — неотполированный металл (нижний слой) и автоэмаль синего цвета (верхний слой). Используя различные шаблоны кистей в режиме Texture Paint, можно работать альфа-кистями по поверхности, открывая нижний слой шейдеров, и таким образом получать различные эффекты потёртостей.

Демонстрация Kit Ops
Видео: Blender / YouTube

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

Маску также можно совместить уже с запечённой ранее картой нормалей и получить дополнительный рельеф поверхности
Кадр: Blender / YouTube

Чтобы сделать модель самолёта по-настоящему уникальной, Педро добавляет к основному шейдеру дополнительные изображения-текстуры с опознавательными знаками, рисунками и надписями. К слову, основной цвет текстуры в ноде «умного» материала можно при желании изменить за пару кликов.

В итоге получился набор текстур со всеми необходимыми свойствами поверхности, готовый для импорта в игровой движок.

В центре можно увидеть набор текстур, полученный в результате запекания карт с разными свойствами
Кадр: Blender / YouTube

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

Как уже упоминалось ранее, истребители художника представлены и в промоматериалах Wings of Heroes. Учитывая сеттинг игры, для референса статичных рендеров Педро ищет старые снимки, сделанные военными фотографами во времена Второй мировой. Чтобы придать кадру больше реализма, Педро использует в качестве фона фототекстуры неба, которые можно найти на различных маркетплейсах. Как правило, они не бесплатные, но и не сильно дорогие. А различные фильтры помогают передать дух исторических снимков и военных хроник.

Впрочем, в портфолио художника есть и рендеры в более современной стилистике.

Итог

Разумеется, подход к моделированию и текстурированию транспорта, представленный Педро, далеко не инновационный. Но не стоит забывать, что в индустрии существует немало соло-разработчиков и небольших инди-студий, которые не могут позволить себе регулярно оформлять дорогие подписки на Zbrush, Substance 3D Painter и другой платный софт. А в некоторых регионах возможность покупки отсутствует вовсе. И подобные техники позволяют сэкономить деньги и получить желаемый результат, используя всего лишь одно бесплатное приложение.

К тому же всё ПО для 3D-моделирования обновляется каждый год, и инструменты Blender в этом отношении не являются исключением. Опыт Педро показывает, что даже если программа не соответствует стандартам индустрии, то ничего не мешает использовать её в работе, если с ней художнику проще достичь желаемого результата за короткие сроки.

Подписывайтесь на наш телеграм-канал «Чекпоинт». Это уютное место, в котором мы рассказываем об играх и о том, как они создаются, а также делимся полезными советами разработчиков и пишем о важных обновлениях популярного софта. Комментарии открыты: вы можете предложить идею для нового текста или просто обсудить всё, что связано с геймдевом.

Проверьте свой английский. Бесплатно ➞
Нескучные задания: small talk, поиск выдуманных слов — и не только. Подробный фидбэк от преподавателя + персональный план по повышению уровня.
Пройти тест
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована