Запечка текстур это что

Всё про Bake (запечку) как этап ААА-пайплайна

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

Запечка (Bake) — четвёртый этап ААА-пайплайна. На прошлом мы сделали развёртку, а сейчас будем её использовать для создания Normal Map, AO и Color ID.

Примечание: нам часто говорят, что правильнее писать «запекание», а не «запечка». Мы пишем «запечка», потому что это устоявшийся термин в индустрии.

Что такое запечка

Взглянем на low poly модель, которую сделал наш студент Leon.

В ней минимум полигонов и чистая сетка. Эта модель будет загружаться в игровой движок.

Есть ещё high poly модель с высокой детализацией и скульпт.

Технология запечки позволяет перенести все детали с high poly и скульпта на low poly-модель.

В итоге, в игровом движке будет low poly модель с минимальным количеством полигонов, но выглядеть она будет так, как будто на ней есть все эти детали:

Мы берём low poly модель и добавляем на неё запечённые карты нормала и АО. Эти карты обманывают поведение игрового света. Модель начинает бликовать так, как будто на ней есть все эти фаски, вырезы и прочие детали.

Для тех, кто не понимает, о чём речь: мы очень подробно писали про вертекс нормали и принцип работы нормала в статье про сетку.

На этом этапе пайплайна — запечке, — наша задача: запечь 3 карты.
1) Normal map — карту неровностей
2) Ambient Occlusion (AO) — карту затенения
3) Color ID — цветные маски

В Marmoset можно запечь гораздо больше карт, про это будет дальше.

Мы добавим эти карты на нашу low poly модель, на ней появится вся детализация с high poly и скульпта, а благодаря карте Color ID модель будет легче разбить по материалам и текстурировать.

Все карты создаются на основе развёртки, которую мы сделали на прошлом этапе пайплайна. Без развёртки карты не запекутся. Если есть ошибки на развёртке или low poly модели, то мы столкнёмся с кучей проблем.

Ссылки на теорию

Вот несколько наших статей, из которых можно понять, как работает «магический» трюк с обманом вертекс нормалей.

Какие карты будем печь

Нет смысла запекать карты, если не знаешь, что они делают и как работают.

1. Normal Map

Normal Map переводится как «карта нормалей». Она изменяет направление блика на геометрии.

Карта создаёт виртуальные вертекс нормали в каждой точке low poly модели и искажает поведение света. Если наложить запечённый нормал на модель, то она будет выглядеть почти как high poly.

Вот хороший пример: low poly модель с включенным нормалом и без него.

Новые полигоны не создаются, это лишь иллюзия формы:

Чтобы создать нормал, нужно взять развёртку, которую мы делали ранее, взять high poly и скульпт, загрузить в программу для запечки и нажать кнопку «bake».
Там много нюансов, но мы обо всём расскажем.

Что нужно знать о нормале

Небольшие чёрные полосы на нормале — это нормально. Никто не будет разглядывать нашу модель под микроскопом.

Почему не стоит сильно волноваться о чёрных полосах? Игрок почти всегда видит модель в игре на расстоянии. Поэтому не нужно тратить несколько часов, чтобы убрать чёрные полоски на нормале:

Из чего состоит карта нормалей

Normal map создает иллюзию объёма благодаря трем картам в каналах текстуры: красный, зелёный, синий.

Чтобы переключаться между каналами, откроем файл с нормалом в Photoshop и зайдём во вкладку Channels.

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

Зелёный канал — работает так же, но искажает шейдинг по вертикали.
Светлый-блик поворачивается наверх, а тёмный — вниз.

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

У бочки на high poly есть фактура дерева.

Затемнение идёт только по одной из осей.

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

А зелёный канал — показывает искажения по вертикали. Так как виртуальные плоскости не отклоняются вверх/вниз, то затемнений почти нет, то информации на нормале в этом канале почти не будет:

Красный и зелёный каналы — основные для нас как для моделлеров. Но у нормала есть ещё синий канал.

Синий канал имитирует углубления в объекте. В играх он практически не используется.

За счёт изменения синего цвета на нормале создаются искажения на плоской поверхности.

Если на синем канале есть артефакты, можно просто выключить этот канал, то есть отключить синий цвет у нормал мапа в фотошопе. Или просто их замазать артефакты кисточкой.

У каждого канала — своя функция. При артефактах после запечки иногда нужно править нормал руками. Иногда это делается сразу на всех трёх каналах, а иногда — на одном из них. Если не разобраться в функциях этих каналов, сложно будет редактировать нормал.

Нейтральный цвет нормала

128х128х255 — нейтральный цвет нормала.

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

В каком формате лучше хранить нормал

После запечки, скорее всего, придётся вносить изменения в нормал, используя фотошоп.

Поэтому файл лучше сохранять в форматах Targa или TIF.
При сохранении есть выбор, сохранять в 24 или 32 bit.
Если есть Альфа-канал — сохраняем с 32 bit.
Если Альфа-канала нет — в 24 bit.

2. Карта АО

Карта Ambient occlusion (AO) — это карта затенения. Она показывает самые глубокие тени в объекте — в основном это тени в углублениях и на пересечениях. Эту карту используют в игровых движках для создания корректного освещения, а также она очень полезна в текстурировании.

Читайте также:  настоящая история ип мана

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

Так же как и нормал, карта АО печётся на развёртку модели из high poly и скульпта.

При запекании по-умолчанию эта карта чёрно-белая, но на этапе текстурирования её можно покрасить.

С картой АО разобрались, последняя карта, которая нам нужна — Color ID

3. Карта Color ID

Наша модель состоит из разных материалов: металла, камня, дерева и ткани.

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

Чтобы это можно было сделать в один клик внутри Substance Painter, нам нужно запечь карту Color ID. Она позволяет быстро выделять большие куски. А в программе для текстурирования эту группу объектов можно легко затекстурить.

Вот так, с помощью этой карты мы в считанные секунды красим модель в разные цвета:

Для того, чтобы создать карту Color ID, нам нужно покрасить high poly-модель в разные цвета. Один цвет — это одна группа объектов, как правило разбитая по материалам. Например, всё дерево на Color ID оранжевое, вся кожа —розовая, ржавый металл — синий, шерсть — голубая, а новый и чистый метал —зелёный.

Это не цвета будущей модели — здесь они могут быть любыми. Главное, чтобы они были контрастными.

Дополнительные карты

В мармосете куча карт, которые можно запечь.

Их в разных пайплайнах используют разные художники для текстурирования:

Position map с помощью градиентов помогает накладывать текстуры в разных плоскостях модели.

Сurvature выделяет все края на модели и упрощает создание затёртостей и повреждений. Очень полезная карта на ряду с АО.

Thickness запекает толщину, что необходимо для имитации подповерхностного рассеивания.

Часто для hand paint текстур пекут свет прямо на текстуру. Иногда необходимо запечь альфу карту прозрачности.

Ещё мармосет умеет печь цвета и материалы с других моделей и текстур, это иногда помогает не переделывать много текстур с нуля.

Сейчас проще печь дополнительные карты прямо в Substance Painter.

Он знает, как в один клик из нормала и AO сделать идеальные карты для своих алгоритмов. Они отлично откалиброваны, и с ними прекрасно работают все генераторы и фильтры.

Софт для запечки

В конечном счёте софт не важен. Принцип работы запечки во всех программах один и тот же.

То же самое можно сделать в Maya, Blender, 3D Max, Modo или Cinema 4D. Я очень люблю запечку в Maya. Она печет отличный и аккуратный нормал, но требует много танцев с бубном из-за артефактов на плоскостях, а также из-за долгого и нудного подмешивания разных карт в Photoshop.

На курсе Draft Punk я выбираю Marmoset Toolbag, потому что в ней проще научиться печь. До Maya я недолго пек в xNormal, но научившись печь в Maya в xNormal не возвращался. Сейчас я часто слышу про запечку в Painter, но сам в нём никогда не пёк.

Как сделать самую быструю в мире запечку

Шаг 1: Открываем Marmoset.

Шаг 2: Загружаем low poly и high poly, добавляем их в одну группу запечки (Baker).

Шаг 3: Нажимаем кнопку «Bake».

Когда карта будет готова, открываем Maya, добавляем на low poly карту нормалей. Получается такой результат:

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

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

Единственный способ — сделать всё заново, но подготовив модель к запечке.

Вся остальная часть статьи будет посвящена тому, как сделать так, чтобы артефактов не было. Это достаточно долгий, но системный процесс.

1. Подготовка low poly модели к запечке

Шейдинг

Low poly должна шейдить красиво. Вот пример плохого и хорошего шейдинга:

Секрет хорошего шейдинга — в правильной работе с хардами и софтами.

Харды и софты и углы

В 3Ds Max харды и софты называются группами сглаживания.

Почему нужно расставлять харды? Везде где харды, мы будем разрезать UV — про это позже. Пока что просто проверим, что харды везде назначены там, где они нужны. Если это не сделать, нормал будет вести себя нечестно.

В Maya для этого есть автоматическая функция, — Soften/Harden Edge. Я люблю в этом инструменте ставить 60 градусов. Все что острее будет хардом, а все что тупее — софтом.

Есть нюанс: если начал делать луп хардами, нужно продолжать хардами по всей его длине, иначе появятся артефакты:

Убираем зазоры между геометрией

Следим, чтобы не было дырок между геометрией:

Источник

Запечка (bake) стилизованного персонажа

Привет! Мы продолжаем цикл статей по пайплайну разработки стилизованных персонажей.
Сегодня ты узнаешь, как устроен четвёртый этап ААА-пайплайна — запечка (bake), на примере нашей модели.

Что такое запечка

Этап запекания (bake) — полностью технический этап ААА-пайплайна, цель которого заключается в переносе детализации с хайполи модели на лоуполи с помощью специальных карт.

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

Все эти карты необходимы для следующего этапа — текстурирования.

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

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

Наиболее полезны эти карты:

— Normal Map
— Normal (Object)
— AO (Ambient Occlusion)
— Curvature
— Vertex Color (Color ID)

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

Для запечки необходимо иметь:

Читайте также:  Скидки в чите в честь дня рождения

Ключевая мысль этой статьи

Процесс «запечки» написан на очень сложных и чувствительных алгоритмах.

У этих алгоритмов есть целый ряд требований к модели. А любая ошибка приводит к артефактам, которые могут испортить всю проделанную работу.

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

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

Подготовка хайполи под бейк

Потому что в таких местах часто появляются артефакты.

2. Покрасили хайполи для карты Color ID

Мы покрасили разные материалы в разные цвета и сохранили в отдельный файл. Из него сегодня мы запечём карту Color ID, — она необходима для текстурирования.

Подготовка лоуполи под бейк

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

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

Первый шаг

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

В конце именно эту версию модели мы отправим аниматору.Все остальные версии лоуполи-модели — технические.

Удаляем все элементы, на которых есть оверлапы

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

Слева — финальная модель. Справа — модель для запечки. Удалены объекты с оверлапами

Разбиваем модель на несколько объектов

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

Внутри каждого объекта все элементы должны находиться на расстоянии друг от друга.

Распределяем элементы по разным объектам. Это выглядит так:

Внутри каждого объекта элементы находятся на расстоянии друг от друга.

Если между элементами маленькое расстояние, у них будет пересекаться Cage (зона поиска). И снова появятся артефакты. Так делать не надо:

Объекты слишком близко друг к другу, так делать нельзя

Что делать? Если видим, что два элемента геометрии лежат рядом, кладём их в разные группы:

Эти два элемента клади в разные группы, так как они пересекаются.

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

Триангулируем модель

Теперь у нас есть две версии нашей лоуполи-модели.
Первый — модель для запечки, в которой объекты разбиты по группам.
Второй — финальная модель, где вся геометрия сшита в один объект.

Слева — модель для запечки. Справа — финальная модель.

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

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

Открываем Marmoset

Первым делом создаём новые группы в бейкере:

В каждую группу бейкера загружаем файлы лоуполи и хайполи.

Получилась такая структура внутри бейкера:

Затем выбираем, какие карты будем запекать.
Для стилизованного персонажа я рекомендую создать именно эти карты:

— Normal Map
— Normal (Object)
— AO (Ambient Occlusion)
— Curvature
— Convexity
— Concavity
— Vertex Color (Color ID)

Затем указываем расширение (размер) карт:

Указывать нужно значение в два раза больше, чем будет в игре.Например, если нужны 2К текстуры для проекта, то запекаем в 4К.

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

Другие настройки:

В нашем случае настройки такие:

Дальше нажимаем кнопку со знаком «Р»:

Эта функция привязывает все карты к одному конкретному материалу.

Так как материал у нас один, то ничего больше делать не нужно.А один материал у нас потому, что развёртка всего персонажа сделана на одной UV.

Дальше мы, наконец-то, нажимаем кнопку Bake.

Когда всё готово, в папке появятся psd файлы со всеми картами:

Описание карт

Изначально, до запечки, модель выглядит вот так:

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

Normal Map

Содержит информацию о поверхности.

Карта создаёт виртуальные вертекс-нормали в каждой точке low poly модели и искажает поведение света. Если наложить запечённый нормал на модель, то она будет выглядеть почти как high poly.

Это одна из самых важных карт, которая запекается почти для каждой модели.

Более подробно о Normal Map мы писали здесь.

Normal (Object)

Информация о поверхности относительно окружающей среды.

По сути, эта карта учитывает то, что у модели есть верхняя и нижняя часть.

Главное визуальное отличие от Normal Map состоит в том, что на этой карте есть градиенты.

Карта Ambient Occlusion (AO)

Это карта затенения. Она показывает самые глубокие тени в объекте. В основном это тени в углублениях и на пересечениях.

Эту карту используют в игровых движках для создания корректного освещения, а также она очень полезна в текстурировании.

Даже когда объект ярко освещён, на нём всё равно есть тени. Именно их передаёт эта карта.

Curvature

Содержит информацию о глубинах и высотах.

Чёрный цвет показывает самые глубокие и плоские места, светлый цвет — острые и максимально выпуклые.

На самом деле, есть ещё две отдельных карты: Convexity и Concavity. Карта Convexity передаёт только информацию о высотах, а карта Concavity — только о глубинах. Если эти две карты объединить, то получится карта Curvature.

Читайте также:  Текст на антитела к коронавирусу что показывает

Но я люблю запекать сразу 3 карты: Curvature, Concavity и Convexity. Так проще работать во время текстурирования. В то же время, многие трёхмерщики запекают только карту Curvature, и этого зачастую вполне достаточно.

Convexity (необязательная карта)

Это карта выпуклостей. Помогает класть затертости и царапины на границах форм. Эту карту можно вытащить из АО и Curvature, но иногда удобнее запечь ее отдельно.

Concavity (необязательная карта)

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

Vertex Color (Color ID)

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

У нашего персонажа есть рога, броня, ткань, болты и кожа. Всё это разные материалы, которые очень легко выбирать с помощью Color ID.

С картами разобрались.

Этап запечки почти закончен.
Добавляем карту нормалей к лоуполи и сразу видим результат:

Лоуполи + Normal Map

Финальный этап — проверить карты на ошибки.

Проверять на артефакты нужно прежде всего Normal Map. А небольшие артефакты на других картах можно легко исправить во время текстурирования.

Проверяем запечку на артефакты

О нет, у нас артефакт на нормале! На модели появились небольшие странные полоски.

Артефакты появляются по целому ряду причин. Некоторые из них мы объясняли здесь.

Это нормально, просто артефакт нужно убрать. Для этого попробуем самые частые методы исправления артефактов:

1. Геометрия лоуполи и хайполи не совпадает

Нужно исправить геометрию — немного подвинем вертексы, чтобы они лучше совпадали:

Затем грузим этот изменённый кусок обратно в Мармосет, запекаем заново, меняем Cage.

Стало лучше, но, к сожалению, до конца не помогло. Значит, идём дальше.

2. Геометрия на лоуполи пересекается

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

Проверяем. В нашем случае этот кусок лежит далеко от других элементов.

Поэтому идём дальше.

3. Замазываем артефакт в фотошопе

Это самый кардинальный метод, который часто помогает. Нужно открыть запечённый Normal Map и замазать артефакт вручную.

Проблема в том, что на карте нужный кусок не так-то просто найти. Поэтому запечём одну дополнительную карту: Wireframe.

Эта карта поможет легко найти расположение любого элемента на UV.
А благодаря этому мы легко найдём его же на Normal Map и сможем замазать артефакт.

Так выглядит эта карта:

Запечённая карта WireFrame

Ищем нужное нам место на UV.

Искать, конечно, нужно внутри первого квадрата UV. Просто выделяем нужный объект на модели, и его расположение на UV подсветится.

А затем открываем карту с нормалом, увеличиваем и сразу видим наш артефакт:

Просто замазываем его:

Отлично! Теперь никто не узнает, что на нормале был артефакт:

4. Альтернативный метод исправления артефактов

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

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

Почему так просто?

Почему запечка прошла так легко и без проблем?

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

Мы учитывали особенности алгоритмов запечки на всех этапах, начиная со скульпта.

Вот некоторые из моментов, которые всегда нужно учитывать.

1. Правильная поза у персонажа

У персонажа руки раздвинуты немного в сторону.
Поэтому геометрия не слипается.

Правильная поза для стилизованного персонажа

Если, например, бицепс, будет пересекается с телом — в таком месте могут появиться артефакты. Вот пример, как не надо делать:

Пример неправильной позы у стилизованного персонажа

2. Правильная и простая группировка объектов

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

Это делается легко и просто, зато позволяет избежать большей части артефактов во время запечки.

Вот пример того, как делать не надо. Здесь Cage (зона поиска зелёного цвета) у двух разных объектов пересекается:

Пример с ошибкой, которую часто допускают новички

3. Чистый ретоп

Мы использовали функцию с «магнитиком», и поэтому, когда мы создавали лоуполи модель, все вертексы полностью прилегали к хайполи.

Именно поэтому хайполи и лоуполи почти идеально совпадают, а артефакты не появляются.

Вот пример плохого совпадения лоуполи и хайполи:

Если видишь нечто подобное — исправляй модель, иначе во время запечки будут проблемы.

4. На этапе UV

Была создана ровная, без сильных потяжек, развёртка, с равномерным текселем на всех шеллах.

Все шеллы оптимально упакованы в квадрат без лишних пустот.

5. Продуманная модель

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

6. Прижатая геометрия

На модели, где это возможно, прижаты элементы одежды. За счёт этого мы избегаем ненужных пустот, с которыми сложно работать на этапе ретопологии.

Более того, такие места часто создают ненужные артефакты во время запекания.

Если хочешь научиться создавать полный цикл стилизованных персонажей для компьютерных игр и перенять опыт наших преподавателей — ещё не поздно записаться на наш курс STYL.

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

Подписывайся, чтобы не пропустить новые выпуски цикла про пайплайн персонажей. Мы в VK, Facebook,Instagram, Youtube и Telegram.
Следующая статья будет про текстурирование, а затем — про риг и анимацию.

Источник

Академический образовательный портал