UV_Развёртка.md 12 KB

UV Развёртка

Развёртка - это модель, сделаная из объемных форм. На любой объект в редакторе можно положить материал, выбрать его цвет и настроить блик. Но положить текстуры на 3D объекты нельзя до тех пор, пока не сделана развёртка. Программа просто не знает как накладывать плоскую текстуру на геометрию.

Отсюда возникает отдельный этап пайплайна — UV развёртка.

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

Пример из реальной жизни: В оригами из плоского листа бумаги делаем объемный объект, а развёртка делает то же самое, но наоборот — из объемного делает плоское.

Развёртка для видеоигр всегда делается из лоуполи модели

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

pTex - формат, который содержит (2d-) информацию о пикселях каждой грани 3D модели. Формат был разработан студией "Disney" для 3d-рисования. Формат был с открытым исходным кодом.


С чего начинается работа с развёрткой?

В любом 3D редакторе есть инструментарий для работы с UV.

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


Как видно на картинке, у куба есть 8 точек и 6 квадратных полигонов.
Но количество точек на UV больше, чем на самой модели т.к. одна точка на модели может иметь несколько точек на UV.
В общем, каждая точка будет принадлежать полигону, который с ней связан. Главное сейчас — каждый полигон имеет своё место на UV как плоский объект, чтобы программа знала как класть текстуру на геометрию.


Два вида мапинга

Без теории не обойтись.Когда ты разворачиваешь объекты на UV, есть 2 пути:

1) Сделать уникальный мапинг.

2) Сделать тайловый мапинг.

На квадрат на UV, который находится от 0 до 1 важнее. Именно на него накладывается текстура, а на всех остальных квадратах текстура просто повторяется.

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

Делая hard surface или персонажей для игры, тебе нужно делать именно уникальный мапинг. А для объектов окружения, ландшафтов и зданий часто используется тайловый мапинг. Hard surface - твердые отражающие поверхности.


Уникальный мапинг

Пример: Мы хотим замапить наш грузовичок. У него есть текстура с деревом для кузова и текстура с крашеным металлом для кабины.

Мы можем сделать 2 материала. Один под дерево, другой под крашеный металл. И уже мапить объекты на эти 2 материала.

Но есть нюанс. Каждый новый материал — это лишний вызов отрисовки (draw call), который нагружает игровой движок. А мы моделим грузовичок для игры. Нам крайне важно использовать минимальное количество ресурсов.

Поэтому, вместо этого мы делаем всего один материал. Сначала мы разворачиваем все объекты на UV, потом кидаем в фотошоп или Substance Painter и красим эти элементы по отдельности.

На важные объекты для больших современных игр можно добавлять по 3-5 материалов.

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

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

— Мы мапим все объекты на UV только в первый его квадрат. Ни один из шеллов не выходит за его пределы, и шеллы не пересекаются.

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

— Но на выходе мы имеем одну единственную текстуру и один материал, тем самым экономим ресурсы игрового движка.


Тайловый мапинг

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

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

Мы хотим сделать развёртку этого дома и для этого:

Сначала мы создадим материалы с бесшовными текстурами. Потом кладём их на геометрию с помощью авторазвёртки (box maping).

И так делаем для каждого из объектов. Для стены дома — один материал с кирпичной кладкой. Для прилавка — другой материал с текстурой дерева. И так далее.

Ещё один момент — при тайловом мапинге сами UV шеллы могут выходить за пределы первого квадрата UV. Это нормально.

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

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

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

Вот так выглядит наш дом после развёртки и текстур.

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

Если не нужны швы при повторении текстуры нужно использовать тайловые текстуры, то есть текстуры без швов.

И есть целый ряд библиотек с тайловыми текстурами. Вот несколько полезных сайтов:

textures.com texturehaven.com poliigon.com quixel.com/megascans/library

Тайловая текстура, т.е. текстура, которая повторяется без швов.Но есть нюансы. У нас в сцене есть несколько разных фруктов.

Кусок сцены с фруктами.

Как ты знаешь, каждый из материалов — это отдельный вызов отрисовки в игровом движке. Чтобы сэкономить ресурсы и не создавать под каждый из фруктов отдельный материал, мы нарисуем одну текстуру и замапили на неё все фрукты. В игре мы почти все не тайловые текстуры засунули бы в один атлас, сделали бы его плотнее и аккуратнее.

Одна текстура — и сразу несколько покрашенных объектов. Это простейший атлас.​

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

Раз речь зашла о текстурах, есть ещё один момент, который нужно знать.Лучше всего работать с квадратными текстурами.

Оверлапы сэкономят пространство на UV

Если на модели есть одинаковые элементы, например, болты на обшивке, то на UV их можно размапить на один и тот же UV shell.