Создание джипа «Виллис»

Martin Ostrolucky и Rudolf Herstek, основатели студии Cassa Game Industry, рассказали о создании модели знаменитого джипа «Виллис» времен Второй мировой войны.

Создание джипа «Виллис»

О проекте

Джип «Виллис» был одним из самых массовых транспортных средств Второй мировой. Мы создали первую 3D-модель автомобиля в 2013 и с тех пор она была несколько раз переработана, превратившись в полноценную модель для AAA-игры. Вы можете видеть, как по мере развития наших навыков модель становилась все более и более качественной:

Создание джипа «Виллис»

Цель и референсы

В начале проекта мы решили создать модель для ААА-игры с высококачественными PBR текстурами. Мы хотели, чтобы машина выглядела реалистичной, а не стилизованной, и была готова к ригу и анимации. Первым делом мы нашли множество референсов «Виллиса» в интернете, а затем определились с дизайном модели, количеством повреждений, цветом, символикой и текстом декалей.

Создание джипа «Виллис»

3D-моделирование

Для реально существующих автомобилей и других средств транспорта почти всегда можно найти чертежи. Сайты вроде the-blueprints.com помогут вам выбрать дизайн ключевых элементов конструкции. В идеале чертеж должен демонстрировать объект со всех сторон.

Хай-поли модель

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

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

Создание джипа «Виллис»

Сначала мы создали главные формы, а затем перешли к более мелким. В большинстве случаев создавать элементы из листового металла лучше всего из плоскости. Сначала вы деформируете ее, опираясь на чертеж, а затем используете Shell Modifier, чтобы добавить толщину. Чтобы сделать плоскость округлой мы использовали Turbosmooth с 2-3 уровнями сабдива.

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

Например, давайте посмотрим, как мы создавали покрышку. Мы начали с плоскости, на которой смоделировали один сектор шины. Поскольку этот паттерн повторяется 80 раз, мы просто сделали нужное количество копий.

Создание джипа «Виллис»

С помощью функции Weld мы объединили все элементы и добавили два модификатора Bend. Первый нужен для того, чтобы сделать поверхность шины выпуклой, а второй — чтобы создать из плоскости окружность. В последнюю очередь мы использовали Weld Vertices. Если у вас возникают сложности с замыканием окружности, добавьте Reset Xform и правильно выставьте пивот объекта перед использованием модификатора Bend.

Создание джипа «Виллис»

В итоге мы получили вот такую покрышку:

Создание джипа «Виллис»

Объекты, созданные из ткани ( например, обивка сидений или кожух рычага переключения передач) лучше всего делать в Zbrush. Перед экспортом хай-поли модели из Zbrush воспользуйтесь Decimation Master. Он значительно сократит полигонаж без визуальных искажений, что упростит вам процесс запекания текстур.

Создание джипа «Виллис»
Создание джипа «Виллис»

Лоу-поли модель

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

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

Создание джипа «Виллис»

Модель А: вы видите, что топология подходит для куба, но она создает жесткие грани на плоскости и у основания куба. Решением проблемы может быть добавление куба как отдельного элемента (В), но тогда будет не хватать фаски в месте соединения куба с плоскостью. Если наличие перехода между двумя формами важно, и вы не можете использовать дополнительные эдж лупы, то вы можете создать геометрию фаски отдельно (С).

Создание джипа «Виллис»

Развертка модели

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

Создание джипа «Виллис»
Создание джипа «Виллис»

При компоновке UV-шеллов мы рекомендуем начинать с больших объектов, а потом переходить к более мелким, которые можно разместить на свободных участках.

Создание джипа «Виллис»

Запекание текстур

Перед началом запекания необходимо убедиться, что вы придерживались следующих правил:

  • Швы UV-развертки сделать с учетом топологии объекта.
  • Группы сглаживания назначить с учетом использования модификатора Unwrap.
  • Использовать команду Explode на лоу- и хай-поли моделях, чтобы избежать артефактов.

После Explode мы экспортировали обе модели в формате .fbx и запекли их в Xnormal.

Создание джипа «Виллис»

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

Мы загрузили карту нормалей и модель джипа в формате .fbx в Substance Painter и запекли дополнительные карты — Ambient, Curvature, World Space, Position и Thickness. Вместо того, чтобы запекать по хай-поли модели, мы использовали импортированную карту нормалей, потому что уже откорректировали все ее артефакты. Таким образом, мы предупредили возникновение артефактов на дополнительных картах.

Создание джипа «Виллис»

При запекании дополнительных карт с карты нормалей не забудьте убрать галочку с Normal и отметить Use Low Poly Mesh as High Poly Mesh.

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

Благодаря референсам мы поняли из каких материалов сделан джип, какова их структура, где собирается грязь, как выглядит детализация поверхностей и какие части машины наиболее подвержены повреждениям. Для текстурирования мы использовали Substance Painter 2.6.2.

Перед импортом джипа в Substance Painter мы разделили UV развертку на два текстурных набора – Джип (непрозрачный материал) и Окна + Свет (светопрозрачный материал).

Создание джипа «Виллис»

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

Мы начинаем текстурирование с назначения базовых материалов. Вы можете использовать те, что находятся на полке или загрузить их на Substance source. Сначала мы назначили каждому элементу джипа (кузов, колеса, сиденья) только один материал – металл, листовой металл, резина, пластик, кожа и тд, и создали 18 основных групп.

Создание джипа «Виллис»

У нас получилась первая версия материалов. Чтобы сохранить логику текстурирования, мы шли от макро- к микроструктуре. Иными словами, сначала мы определились с материалами, а затем добавляли детализацию.

Создание джипа «Виллис»

Так мы организовали слои в группе «Сиденья»:

Создание джипа «Виллис»

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

Создание джипа «Виллис»

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

Создание джипа «Виллис»

Качественные текстуры для масок добавляют модели реализма. Ниже вы видите примеры использованных нами текстур:

Создание джипа «Виллис»

Презентация и рендер

Чтобы определиться с презентацией модели, мы использовали референсы концептов и фото автомобилей. Это помогло нам выбрать положение камеры и освещение джипа. Для рендера мы использовали Vray.

Сначала мы не могли получить оптимальный цвет и настройки. Путем проб и ошибок мы выработали следующие правила:

  • В настройках Gamma and LUT установите Gamma Correction на 2.2, поставьте галочку для Gamma/LUT, Affect Color Selector и Material Editor.
  • Экспортируйте текстуры из Substance Painter с настройками для Vray. Используйте формат .tif 16bit.
  • Импортируйте карту Diffuse в 3ds Max cо значением Override 2.2.
  • Импортируйте остальные текстуры со значением Gamma Override 1.0 (Normal, Glossiness, Reflection, IOR, Height).
  • В параметрах BRDF выберите Microfacet GTR (GGX) – только для новых версий Vray.
  • Включите эффект Glossy Fresnel в настройках материалов Vray.
  • Вы можете использовать текстуру Height как карту Displacement, но это потребует больше ресурсов памяти при рендере.
  • Подключите импортированные текстуры: Diffuse=Diffuse map │ Reflection=Reflect map │ Glossiness=RGlossiness map │ IOR=Fresnel IOR map │ Bump (value 100)=VRayNormalMap=Normal map

Ниже вы видите настройки материалов Vray:

Создание джипа «Виллис»

Мы использовали два светильника VRayLight, и один VRayLightDome с подключенной HDRI-картой для создания реалистичных отражений.

Создание джипа «Виллис»

Подведение итогов

Не существует «наилучшего» или «универсального» способа создания игровой модели. Если вы замените хотя бы одну программу в пайплайне, это приведет к значительному его изменению со своими сильными и слабыми сторонами. Главное – это итоговый результат.

Спасибо за внимание. Удачи вам в мире моделирования и текстурирования!

Чтобы быть в курсе последних новостей про наши проекты, подписывайтесь на нашу страницу на Facebook, а если захотите связаться с нами, пишите на info@cassagi.com.

Оригинал статьи находится тут.

Подписывайтесь на нас в Facebook, Telegram, Vkontakte, Pinterest.

3737
7 комментариев

Комментарий недоступен

2
Ответить

Ну ту скорее нюансы пайплайна для тех, кто умеет вертексы давить и кисточками в браше мазюкать. А в конце реклама пейнера - там заебатые маски, хохо! :D

1
Ответить

Комментарий недоступен

2
Ответить

Блин, круто) Работаешь в геймдеве?

Ответить

Спасибо за материал.

1
Ответить

Комментарий недоступен

Ответить