Что такое UV-маппинг?
Текстура — это плоское изображение. Модель — это 3D-поверхность. UV-маппинг — это соответствие между ними — инструкция, которая сообщает рендереру, какой пиксель изображения принадлежит какой части сетки. Без него текстура не знает, куда ложиться.
Краткий ответ
UV-маппинг назначает каждой вершине 3D-модели 2D-координату — U по горизонтали, V по вертикали — внутри единичного квадрата, называемого UV-пространством. Развёртка — это процесс разрезания поверхности по швам и расплющивания частей (островов) в этот квадрат, чтобы плоское изображение можно было нарисовать на изогнутой поверхности без растяжения.
Почему буквы U и V
X, Y и Z уже были заняты положением модели в пространстве, поэтому для осей текстуры были заимствованы следующие буквы алфавита. U идёт горизонтально по текстуре, а V — вертикально, обе нормализованы от 0 до 1 независимо от пиксельных размеров изображения.
Поскольку диапазон всегда 0–1, один и тот же UV-лейаут работает при любом разрешении. Замените текстуру 1K на 4K, и ничего в маппинге не изменится — именно поэтому UV хранятся на сетке, а не запекаются в изображение.
Швы и острова
Нельзя расплющить изогнутую поверхность, не разорвав её где-нибудь — по той же причине каждая карта мира искажает глобус. Развёртка выбирает, где резать. Эти разрезы — швы, и каждый расплющенный кусок между ними — это остров.
Хорошее расположение швов скрывает разрезы там, куда никто не смотрит: под рукой, вдоль линии панели, внутри складки. Видимый шов проявляется как тонкая линия разрыва в текстуре, потому что две стороны берут сэмплы из разных частей изображения, и фильтрация не может заполнить этот пробел.
Растяжение, упаковка и потерянное пространство
Если остров сжат относительно его реальной площади поверхности, текстура там растягивается — детали смазываются, и разрешение фактически теряется. Наложения с шахматным узором существуют именно для того, чтобы сделать это видимым: ровные квадраты означают равномерное распределение текселей.
Упаковка — это вторая половина работы. Острова должны плотно заполнять UV-пространство, потому что каждая пустая область — это разрешение текстуры, за которое вы заплатили, но не использовали. Перекрывающиеся острова обычно являются ошибкой, хотя преднамеренное перекрытие — это законный приём для зеркальных или повторяющихся частей, которые должны использовать общие пиксели.
Когда не нужно разворачивать
Не каждый рабочий процесс требует чистых UV. Трипланарная проекция сэмплирует текстуру из трёх направлений мирового пространства и смешивает результаты, что подходит для тайлинга камня, ландшафта и твёрдых поверхностей на сетках без каких-либо пригодных UV.
Запекание — это исключение, которое заставляет решать проблему: карты ambient occlusion, кривизны и толщины записываются в UV-пространство, поэтому им нужны непересекающиеся острова, чтобы быть осмысленными. Тайлинговый UV-лейаут приведёт к пустому или искажённому запеканию.
Часто задаваемые вопросы
Что означает UV?
Ничего, это не аббревиатура — U и V просто названия осей для текстурного пространства, выбранные потому, что X, Y и Z уже описывали положение модели в 3D-пространстве.
Нужно ли разворачивать модель перед текстурированием?
Для нарисованных деталей и запечённых карт — да. Трипланарная и тайлинговая проекция могут текстурировать сетку без пригодных UV, но запекание AO, кривизны или толщины требует непересекающихся островов.
Почему моя текстура растянута в одном месте?
Этот остров меньше в UV-пространстве, чем его реальная площадь поверхности, поэтому меньше текселей покрывают больше геометрии. Расслабьте или измените масштаб острова, чтобы плотность текселей соответствовала остальной части модели.
Что такое UV-шов?
Край, где поверхность была разрезана для её выравнивания. Швы неизбежны на изогнутой геометрии — цель состоит в том, чтобы разместить их там, где они не будут видны, а не устранить.
Mixos разворачивает вашу сетку в один клик — чистые, непересекающиеся острова, готовые к покраске и запеканию, не выходя из браузера.