Этапы моделирования в ААА-играх. Этап 3: нанесение текстур

Добрый день, уважаемые читатели!

Сегодня мы рассмотрим процесс нанесения текстур/материалов на 3d-модель. Это, пожалуй, один из самых сложных этапов для новичков, так как требует большой усидчивости и внимательности в рутинных процессах.

Этапы моделирования в ААА-играх. Этап 3: нанесение текстур

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

UV-развертка 3d-модели внешней части кондиционера
UV-развертка 3d-модели внешней части кондиционера
3d-модель внешней части кондиционера
3d-модель внешней части кондиционера

В процессе UV-маппинга важно понимать, где должны быть швы, т.е. места разрезов для будущей развертки, какими должны получиться "острова" (отдельные кусочки из UV-карты модели), как их спозиционировать друг относительно друга, каков отступ (паддинг) между ними должен быть, чтобы избежать некрасивых наложений текстур в процессе игры, каков должен быть размер тексела (своего рода пиксель текстуры в трехмерном пространстве). И это помимо того, что для сколь угодно сложной геометрии необходимо избегать сжатий и растягиваний (потягов) текстур. Для проверки правильности наложения текстурных карт используется UV-чекер ("проверяльщик").

3d-модель спортивной бутылки с готовой UV-разверткой и нанесенным чекером. Равномерные и нерастянутые однотипные геометрические фигуры указывают на годную развертку
3d-модель спортивной бутылки с готовой UV-разверткой и нанесенным чекером. Равномерные и нерастянутые однотипные геометрические фигуры указывают на годную развертку

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

Для максимизации качества широко применяют следующие техники, для которых понимание технологии UV-развертки является определяющим:

  1. Оверлапинг. Процесс точного наложения однотипных элементов модели в одну и ту же текстурную координату, т.е. друг на друга, например, досок деревянного забора, ступенек лестниц и других объектов, имеющих одинаковую форму/размер/назначение. Таким образом можно сэкономить большое количество текстурного пространства, увеличив качество отображения всей модели. Минусом является повторяемость текстур, особенно заметная при наличии бросающихся в глаза уникальных деталей (например, узоров древесины или цементных трещин, пятен).
  2. Тайлинг. Процесс размножения одной текстурной карты на одну модель путем уменьшения ее масштаба при сохранении разрешения. Например, однотипную кирпичную стену 2х2 метра можно замостить одной кирпичной же текстурой 1024х1024, повторив узор на каждом метре, что даст его повторение 4 раза. С одной стороны качество разрешения увеличится во столько же, однако возникнет проблема повторяемости, которую решают уже художественными способами, о которых поговорим позже, даст Бог. Здесь же отмечу особое требование к тайловым текстурам: они должны быть бесшовными, т.е. в местах стыка между собой не должно быть видимых границ, для чего существует своя технология их создания.
  3. Атласы и тримы. Это тот же тайлинг, но вид сбоку. В смысле, тримы тайлятся только по одной оси (либо вертикаль, либо горизонталь), а атласы предполагают множество тайлов на одной текстурной карте.

Более подробно про описанные техники можно ознакомиться у Руслана Феликина. Пользуясь случаем, выражаю ему отдельную благодарность за то, что он поделился своими знаниями в свое время!

После того, как все вопросы с UV-разверткой были разрешены, переходим к следующему шагу -- запечка (baking).

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

В этой бочке около 2К треугольников, однако, благодаря вмятинам и работе с ambient occlusion и curvature, создается ощущение высокополигональной модели
В этой бочке около 2К треугольников, однако, благодаря вмятинам и работе с ambient occlusion и curvature, создается ощущение высокополигональной модели

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

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

Наконец, когда дело доходит до самого текстурирования и/или нанесения PBR-материалов, игроделу предстоит решить ряд важных вопросов: какова будет размерность текстур в игре (мы же любим 4K-гейминг, не так ли?), в каком художественном стиле будет эта текстура (реалистичный, ручная раскраска, минималистичный, мультяшный и т.п.), каким образом будет реализован дизайн материала (например, от простейших пластиков и металлов, до многослойных, композитных, анимированных, с прозрачностью и источниками света) и какие детали будут сопровождать модель. На последнем моменте можно чуть-чуть остановиться, ведь здесь будут решать вопросы геймплейного и нарративного характера. От того, какие отметины и детали будут художественно изображены на 3d-модели будет зависеть его роль в игре. Это может быть подсказка, атмосферный маркер, предупреждение.

На этом сегодня всё, остается четвертый этап в пайплайне 3d-моделирования, посвященный анимации и экспорту в движок, который мы рассмотрим в ближайшее время, даст Бог.

Всем спасибо за внимание/участие/оценки/комментарии/подписку!

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