August 6, 2020

Гайд по текстурированию: проверка запекаемых карт. Проверка нормалей

Действительно, вот ты затекстурил очередной пропс, смотришь на него и вроде в общем всё хорошо, но что-то с ним не так. Цвета неправильные? Roughness однообразный? Может быть это всё из-за плохого света? Точно, плохой свет...или всё же нужно перезапеч карту AO покачественней?
Через подобного рода «поиск улучшений» проходят все артисты в начале своего пути. Даже когда начинаешь разбираться во всем получше — всё равно возникают подобные ситуации.

В этом цикле статей мы разберем основные проблемы, которые встречаются у новичков в процессе запекания карт, текстурирования, презентации своих работ и тд.. Мы поговорим об разнообразии и истории на Roughness и Albedo, о главных ошибках при использовании Height канала и ещё о многом другом.
Обсуждать всё это мы будем на примере заранее созданной модели шлема американских пилотов времен Вьетнамской войны - SPH-4

Конкретные требования к качеству запекаемых карт нельзя определить однозначно. На одних проектах допускается normal map со слабо заметными артефактами, на других же — требуют просматривать каждую карту в максимальном приближении.

Все зависит от значимости ассета. Если в играх от первого лица есть возможность рассмотреть все детали, то в проектах от третьего — бессмысленно тратить время на полировку каждого элемента. Учитывать нужно и степень освещенности сцены, разрешение текстур, шейдеры и тп. Незачем шлифовать объект до безупречности, если он прячется в дальнем темном углу.
В этой статье мы пройдемся по типичным артефактам на normal map и пофиксим их.
Итак, ты создал классную модель, развернул её и даже успел забэйкать карты, но что-то с ними не так:

..да и остальные карты смотрятся так себе.

Однозначно нужно чинить. В большинстве случаев начинать стоит с нормала, ведь на нем проявляется большая часть проблем. Разберешься с ним — и работа пойдет намного легче.

Normal map
Отметим проблемные места на шлеме.

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

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

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

Решение: назначить объектам разные имена, если ты запекаешь по неймингу, или разнести их в сцене дальше друг от друга. Как вариант, можно покрутить настройки Cage Distance.

Швы, вызванные неправильной расстановкой smoothing group или инвертированным зеленым каналом. Если с первым всё просто — Hard Edge - UV шов, то за вторым придется следить отдельно.

Существует два основных алгоритма работы Normal map — OpenGL и DirectX. Отличаются они направленностью света в зеленом канале. В OpenGL свет идет снизу вверх (Y+), а в DirectX — наоборот (Y-). Если ты запекаешь нормал в Marmoset и используешь DirectX в своем сабстанс проекте — нужно обязательно инвертировать зеленый канал. Алгоритм DirectX/OpenGL выбирается при создании проекта. Но его можно сменить и в процессе работы в Edit —> Project Configurations.
Причина таких жестких швов на нормале — разная ориентация шеллов на UV. Старайся следить, чтобы островки имели общую направленность. Во-первых, это поможет избежать подобных проблем на нормале. Во-вторых, в будущем будет проще использовать гранжи с явной направленностью при текстурировании.
Несоответствие high poly и low poly версий модели — частая ошибка новичков. Из-за этого на нормале смещаются запеченные элементы. Старайся сопоставлять и подгонять друг к другу хайполи и лоуполи перед запеканием.
Тут видно, что карта нормалей вовсе не пропеклась. Скорее всего, была допущена ошибка в нейминге. Если ты запекаешь карты по именам, названия должны быть корректными и совпадать на low и high poly моделях. И не забывай назначать правильные суффиксы в именах мешей.

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

Большая часть артефактов на нормале решена, теперь можно приступать к запеканию остальных карт и исправлять оставшиеся проблемы.
В следующем материале мы тщательно проверим AO, Curvature, Position, World Space Normal карты, пофиксим лишние запеченные тени, черные пиксельные линии на стыках UV шеллов и другие мелкие недостатки. Stay tuned.