Запекание текстур в Marmoset Toolbag 

Титульное изображение


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

Что же такое это ваше запекание?MFG!

Запекание (от англ. Bake) текстур — это процесс, при котором информация о деталях модели (царапины, фаски, шероховатости и т.п.) переносятся на текстуру. После этого их можно использовать как непосредственно в игровых движках, так и для полноценного текстурирования.

Зачем нужно запекание текстур?MFG!

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

Основные типы запекаемых текстур:MFG!

1. Карта нормалей (Normal Map)

1.jpg

Эта карта используется для имитации мелких деталей на поверхности модели, таких как царапины, складки и другие текстурные элементы. Она позволяет создать иллюзию глубины и объема, не увеличивая количество полигонов. Сами карты нормалей бывают нескольких типов, но сильно углубляться в эту тему мы не будем.

2. Карта Ambient Occlusion (AO)

2.jpg

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

3. Карта кривизны (Curvature)

3.jpg

Это текстурная карта, которая отображает информацию о кривизне поверхности 3D-модели. Этот тип карты может быть использована как и AO в качестве маски, для различных генераторов при создании текстур. Так можно создать эффекты износа, старения, грязи или коррозии в углублениях на краях модели.

4. Карта ID (map id)

4.jpg

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


Перед тем как приступить к запеканию текстур в Marmoset Toolbag, необходимо тщательно подготовить 3D-модель. Самый важным здесь будет создание UV развёртки. Этот этап критически важен, так как от этого зависит итоговый результат запекания. Обо всех основных моментах, касающихся UV развёртки мы уже рассказали в нашей другой статье ПРАВИЛЬНАЯ UV - РАЗВЕРТКА, ОШИБКИ И ПУТИ ИХ РЕШЕНИЯ.

Но вкратце стоит упомянуть некоторые основные моменты:

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

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

- Следите за растяжками островов. Слишком сильно растянутые шелы могут вызвать низкое разрешение текстур в финальной модели или вовсе искажения.

Но не только UV-развёртка важна, стоит проверить геометрию на наличие ошибок. При чём все пункты ниже относятся как к lowpoly так и highpoly.

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

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

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

Так же нельзя упомянуть, что для Marmoset Toolbag очень важно наименование мешей. Имеется ввиду что обязательно должны присутсвовать суффиксы _low и _high. Это ОЧЕНЬ важно. Без этого конечно, можно и обойтись, но при наличии суффиксов у мешей бейк-группы будут сформированны автоматически при импорте модели в программу.

Теперь давайте наконец-то перейдём к практике.

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

После запуска Marmoset Toolbag:

Первое что нужно сделать, это создать Bake Project

5.jpg

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

6.jpg

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

1. Выберите объект, для которого вы хотите запечь текстуры. Сделать это можно нажав кнопку «Load». Экспортировать модель из 3D-пакета можно как в один файл, так и в два отдельных. Самое главное, чтобы все отдельные части модели внутри файла имели правильный нейминг.

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

3. Ниже, во вкладке Output выберите папку, в которую будут импортированы готовые текстуры.

4. Ещё ниже вы можете настроить разрешение для итоговых текстур, а также некоторые другие параметры, такие как количество сэмплов, сглаживание, битность и паддинг. Вторым по значимости после разрешения является количество сэмплов. Этот параметр позволяет нивелировать некоторые проблемы отображения текстур, например, такие как ступенчатые линии.

5. Если на вашей модели назначено несколько материалов в пункте Tiles поменяйте значение Tile Mode с Single Texture Set на Multiply Texture Set. В этом случае вы сможете выбрать разрешение запекаемых текстур индивидуально для каждого текстурного сэта.

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

Для каждого типа текстур вы можете выбрать определённые дополнительные параметры, кликнув по иконке с шестерёнкой. После настройки всех параметров нажмите кнопку "Bake". Marmoset начнет процесс запекания, и вы сможете наблюдать за прогрессом ориентируясь на шкалу внизу окна программы. Длительность этого процесса зависит от количества текстурных сэтов, разрешения и некоторых параметров отдельных типов текстур. Например запекание карты AO будет выполняется значительно дольше, если вы выставили высокое значение параметра Ray Count. Этот параметр отвечает, как несложно догадаться за количество лучей, для генерации этой самой текстуры.

7.jpg

После окончания процесса не забудьте нажать кнопку Preview Material, чтобы все текстуры отобразились на модели.

После завершения запекания проверьте полученные текстуры. Убедитесь, что они выглядят так, корректно, и что нет артефактов или ошибок. Вы можете просмотреть текстуры в окне предпросмотра. За это отвечает иконка сферы и стрелочки, справа от название каждого типа текстур. Если результаты запекания не соответствуют вашим ожиданиям, вы можете внести изменения в параметры запекания. Попробуйте изменить разрешение, качество или другие параметры, чтобы увидеть, как это повлияет на итоговые текстуры. Тут стоит подробнее рассказать об уникальном для этой программы функционале. Именно это является очевидным преимуществом, при выборе программы для запекания. Первое — это индивидуальная настройка кейджа для каждого отдельного меша. Более того, вы можете меняет не только размер, но и вручную обозначать его размер путём рисования чёрно-белой текстуры. Сделать это вы можете следующим образом. Кликните на нужный вам мэш во вьюпорте или аутлайнере. Раскройте папку с названием нужного вам мэша, и кликните по слову Low. Внизу у вас появиться новое меню в котором вы можете настроить все эти параметры. Для редактирования кейджа путём рисования нажмите кнопку Paint Offset.

8.jpg

Более того, тем же образом рисования вы можете настроить параметр Skew. Это условные вектора, согласно которым выбирается направления запекания отдельной детализации на модель. На примере ниже вы может увидеть болты (сверху).

9.jpg

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

10.jpg

Тут то нам на помощь и приходит инструмент Paint Skew. Давай немного отредактируем область с одного из болтов, чтобы увидеть разницу наглядно. После нужно перезапечь карты, в особенности карту AO.

11.jpg

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

12.jpg

Когда вы проверили, что вся ваша модель выглядит хорошо и без ошибок то настало время экспорта?.. Нет, на самом деле все ваши текстуры уже готовы к использованию и они находятся в папке, которую вы выбрали в самом начале. Теперь, всё что вам остаётся, это использовать их. Это может быть как полноценное текстурирование в Substance Painter или вы можете импортировать их в игровой движок. Тут уже всё зависит от ваших целей и задач. Очень надеемся, что эта статья оказалась для вас интересной и полезной!