Что такое UV-развёртка? Понятное руководство для специалистов по 3D-графике
Развёртка UV превращает 3D-модель в плоскую 2D-развёртку текстур. Узнайте, что такое развёртка UV, почему она вызывает искажения или растяжение текстур и как правильно выполнять развёртку для игровых ресурсов.
Большинство «сломанных» текстур — это не проблемы с текстурами. Это проблемы с UV-развёрткой, выдающие себя за ошибки текстур. Модель отлично выглядит в окне просмотра, вы назначаете материал, и вдруг рисунок древесины смещается или логотип растягивается по лицу персонажа. Виновник почти всегда — UV-развёртка, а не изображение.
Развёртка UV — это процесс разрезания поверхности 3D-модели и её разворачивания на плоскость, чтобы 2D-текстура могла быть наложена на неё без искажений. Через этот этап проходит каждый игровой ассет, визуализация продуктов и модель для 3D-печати, независимо от того, выполняете ли вы развёртку вручную или используете автоматические инструменты. В этом руководстве объясняется, что такое развёртка UV, почему некачественные UV-координаты приводят к растянутым и деформированным текстурам, и какие основы необходимо усвоить ещё до того, как вы откроете редактор текстур.
Что же на самом деле делает UV-развёртка?
Аналогия, после которой всё встаёт на свои места
Представьте, что 3D-модель — это апельсин. Его поверхность изогнута и замкнутая. Если вы хотите нанести на эту поверхность узор так, чтобы он выглядел правильно, нельзя просто приклеить плоскую наклейку к сфере. Нужно снять кожуру с апельсина, разрезать её в нескольких местах и распластать на столе. Теперь у вас есть 2D-форма, которую можно раскрасить, и когда вы снова обернёте её вокруг апельсина, рисунок совпадёт.
UV-развёртка делает то же самое с трёхмерным мешем. Она берёт изогнутую поверхность, разрезает её по выбранным рёбрам и разворачивает в двумерную развёртку. Эта плоская развёртка и есть UV-картой. Текстура, которую вы рисуете или генерируете, накладывается на двумерную развёртку, а программа накладывает её обратно на трёхмерную форму, используя UV-координаты как ориентир.
Почему буквы U и V (а не X и Y)
В 3D-пространстве для указания положения уже используются X, Y и Z. Текстуре нужна своя отдельная двумерная система координат, поэтому по соглашению заимствуются следующие две буквы алфавита: U для горизонтальной оси текстуры и V для вертикальной оси. Вершине модели присваиваются значения U и V, каждое — число, указывающее на определённое место на двумерной текстуре.
Вот почему вы никогда не увидите X-проекцию или Y-проекцию в 3D-инструментах. U и V зарезервированы для текстурного пространства, чтобы они никогда не пересекались с координатами положения самой модели X, Y, Z. Для получения формального определения и истории термина статья о UV-проекции в Википедии является надежным источником.
UV-пространство от 0 до 1
UV-карта существует в квадрате, называемом пространством от 0 до 1. Нижний левый угол имеет координаты (0,0), а верхний правый — (1,1). В большинстве игровых движков реального времени каждая стандартная текстурная карта (диффузная, нормалей, шероховатости, металличности) ожидает, что её UV-координаты будут находиться внутри этого квадрата. Спецификация glTF 2.0 от Khronos задаёт правила системы координат, на которые опираются движки. Если значения выходят за пределы 1.0, текстура начинает тайлиться, повторяя изображение по поверхности. Иногда это делается намеренно для тайлируемых материалов, таких как кирпич или трава, но для уникальных текстур персонажей или пропсов это почти всегда означает ошибку.
UV-островки, швы и упаковка: Три механики
Что такое UV-швы (UV seams)?
Шов — это край, по которому сетка разрезается, чтобы её можно было развернуть на плоскость. Вспомним про апельсин: разрезы, которые вы делаете на кожуре, являются швами. В 3D-модели швы отмечаются вдоль рёбер, которые будут скрыты или проходят по естественным границам формы. Каждый шов создаёт границу в UV-развертке, и если текстура по обе стороны этой границы не совпадает, на итоговой модели появится видимая линия.
Правильное расположение швов позволяет расположить разрезы на острых краях и в незаметных местах. Шов вдоль внутренней стороны ноги персонажа невидим. Шов же прямо по центру лба будет заметен.
Что такое UV-развёртки?
После разрезания по швам и выравнивании поверхности каждая плоская часть представляет собой UV-остров. Куб, развернутый с одним швом на каждом ребре, образует шесть островов — по одному на каждую грань. Развертка персонажа может содержать десятки островов. Острова не должны перекрываться в пространстве от 0 до 1. Если два острова накладываются друг на друга, две разные части модели используют одни и те же текстурные координаты, и текстура одной части «протечет» на другую.
UV-упаковка: как максимально эффективно использовать пространство текстуры
Упаковка — это процесс максимально плотного размещения всех островов внутри UV-квадрата 0–1. Неплотно размещённые острова приводят к нерациональному использованию разрешения текстуры. Плотная упаковка обеспечивает большее количество пикселей на единицу поверхности, что означает более чёткую детализацию. Рекомендации NVIDIA SimReady по работе с UV советуют располагать острова ровно и выравнивать их по осям, чтобы избежать артефактов при запекании, а также стремиться к высокому заполнению UV-пространства для главных ассетов. Упакованная раскладка, использующая 85 процентов или более доступного UV-пространства, является разумной целью для главных ассетов, тогда как для небольших элементов окружения допустимы несколько меньшие показатели.
Почему UV-развертка дает сбой: Режимы отказов
Это та часть, которую пропускает большинство руководств для начинающих. Знание того, что такое UV-развёртка, не поможет вам, если ваша текстура выглядит неправильно. Зато понимание причин помогает.
Растягивание и сжатие текстуры
Когда UV-остров искажается при развёртке, текстура растягивается или сжимается, подстраиваясь под геометрию. На грани, где должен отображаться чёткий логотип, вместо этого появляется размытая полоса. Геометрия и UV-координаты не соответствуют друг другу. Для исправления можно добавить дополнительные швы для снятия натяжения, переключиться на конформный метод развёртки, сохраняющий углы, или закрепить определённые вершины в UV-редакторе и выполнить релаксацию для остальных.
Видимость швов UV-развёртки при финальной визуализации
Швы, попадающие на видимые поверхности, проявляются в виде явных границ, особенно при направленном освещении или когда наблюдается резкий переход текстуры вдоль разреза. Исправлять это нужно на более раннем этапе: перенесите шов на жёсткую грань или в малозаметную область перед созданием развёртки, а не после того, как обнаружите его при рендеринге.
Перекрывающиеся UV-острова
Перекрывающиеся островки вызывают растекание цвета, двоение изображения и некорректное запекание карт нормалей. Если два островка занимают одни и те же координаты, программа для запекания не может определить, к какой поверхности относится пиксель. Единственное решение — разнести островки и переразложить их, а затем повторно выполнить запекание, если вы переносите детали с высокополигональной модели при запекании карт нормалей.
Артефакты при тайлинге текстур вне диапазона UV-координат от 0 до 1
UV-координаты, выходящие за пределы 1.0, заставляют текстуру повторяться. Для тайлируемого пола это и нужно. Для уникального пропа это означает, что кирпичный узор внезапно удваивается или скин-текстура накладывается дважды. Проверьте, намеренно ли это повторение, прежде чем начинать разрезать швы.
Ручная против автоматической развертки UV: когда что использовать
Автоматическая UV-развёртка: быстро, достаточно хорошо для реквизита
Каждый крупный 3D-инструмент включает в себя функцию автоматической развёртки. Smart UV Project в Blender, автоматическое создание UV-развёртки в Maya и специализированные решения, такие как RizomUV, могут создать рабочую UV-раскладку за секунды. Для простых предметов, элементов окружения и низкополигональных игровых ассетов автоматической развёртки обычно достаточно. Швы оказываются там, где решит алгоритм, но на ящике или бочке никто не будет всматриваться в такие детали.
Ручная UV-развертка: требуется для персонажей и геройских ассетов
Персонажам, транспортным средствам и ключевым объектам требуется ручная разметка швов. Автоматическая развёртка размещает разрезы там, куда их поместит алгоритм, что редко совпадает с нужными местами на лице, предплечье или двери автомобиля. Ручная развёртка даёт вам контроль над тем, где проходят швы, насколько большим будет каждый остров и насколько равномерной останется тексельная плотность по поверхности. Именно эта работа отличает ассет уровня студенческой работы от ассета релизного качества. Если вы осваиваете программы для 3D-моделирования для новичков, изучайте ручную разметку швов как можно раньше, потому что это навык, который дольше всего не устаревает.
Гибридный рабочий процесс: автоматическая распаковка, затем тонкая настройка
Наиболее распространённый рабочий процесс не сводится к выбору одного из двух вариантов. Сначала выполните автоматическую развёртку, чтобы получить начальную компоновку, затем откройте UV-редактор и вручную отрегулируйте расположение швов, уменьшите искажения и упорядочьте острова. Вы сохраните высокую скорость работы и избежите неожиданных результатов.
UV-развёртка для игровых ресурсов: что действительно важно
Игровые ассеты регламентируются строже, чем одиночный рендер. Три фактора определяют, насколько корректно отработают ваши UV-развёртки в игровом движке.
Плотность текселей: правило, определяющее все остальные параметры
Плотность текселей — это соотношение пикселей текстуры к единицам мира. Если один ассет имеет 512 пикселей на метр, а соседний — 256, они будут выглядеть по-разному при одинаковом расстоянии камеры, даже если текстуры идентичны. Именно единая плотность текселей в сцене делает текстуры целостными, а не «пятнистыми». Выберите целевое значение (например, 512 пикселей на метр для пропсов окружения, выше — для геройских объектов) и придерживайтесь его для всех ассетов. Основы PBR и UV от Adobe Substance 3D объясняют, почему единообразное масштабирование текстур важно для реалистичных поверхностей.
Понимание того, что делает 3D-модель игропригодной начинается с этого числа, поскольку тексельная плотность — один из первых параметров, который проверяет теххудожник.
UV-карты освещения: отдельный канал, отдельные правила
Движки, использующие запечённое освещение, нуждаются во втором UV-канале специально для лайтмапов. UV-координаты лайтмапа не должны накладываться друг на друга, и необходимо оставлять отступы между островками, чтобы свет не просачивался с одной поверхности на другую. Этот канал независим от первичного UV-канала, который используется для ваших карт цвета и нормалей, и если его настроить неправильно, получится пятнистое освещение, которое невозможно исправить никакой правкой текстур.
UDIM: когда одного текстурного тайла недостаточно
UDIM позволяет одному ассету охватывать несколько текстурных тайлов. Если одна карта 4K не может обеспечить необходимую детализацию для крупного героического ассета, тайлы UDIM распределяют текстуру по нескольким файлам, каждый из которых занимает отдельный квадрат в UV-пространстве. Эта техника чаще применяется в кинематографе и для героических ассетов, а не для мобильных игр, но она становится решением, когда один тайл исчерпывает свои лимиты.
Как исправить плохую UV-раскладку, не начиная с нуля
Проведите диагностику перед исправлением
Прежде чем удалять UV-карту и начинать заново, определите, какой из четырёх режимов отказа из раздела выше имеет место. Растянутый и перекрывающийся UV-острова требуют совершенно разных исправлений, и одно из них может занять пять минут.
Быстрые правки в редакторе UV
Закрепление островков, сглаживание искажений и добавление разрывов рёбер для твёрдых поверхностей устраняют большинство проблем без полной переупаковки. Редактор UV в таких инструментах, как Blender, отображает растяжение цветовой картой, что позволяет напрямую видеть проблемные области, вместо того чтобы гадать по готовому рендеру.
Когда повторная распаковка — единственный выход
Если стратегия швов в корне неверна — например, швы идут по центру каждой видимой грани, — исправление неудачных островов занимает больше времени, чем начать заново. Правильно разметьте швы и выполните развёртку один раз. Это быстрее, чем бороться со сломанной развёрткой целый час.
Как 3D-модели, сгенерированные ИИ, выполняют UV-развёртку
Генераторы 3D из изображений на основе ИИ ускорили получение стартовой сетки для команд, но не устранили необходимость понимания UV-разверток. Разберем, что эти генераторы выдают на самом деле и где ручная доработка остается важной.
Что производят ИИ-генераторы — и что они упускают
Генераторы 3D-моделей из изображений выводят меш с автоматически созданной UV-разверткой. UV-координаты функциональны, то есть текстуры ложатся на поверхность корректно, не разрушаясь, но они не оптимизированы вручную. Во многих случаях это нормально. Конвейер ИИ-генерации текстур в сочетании с автоматической UV-разверткой дает приемлемый результат для статических пропсов за считанные минуты, а такие платформы, как Triverse AI, предоставляют PBR-текстуры вместе с мешем, так что этап текстурирования в значительной степени выполнен.
Когда UV-развертки, созданные ИИ, требуют ручного прохода
Объективно: автоматические UV-развёртки, созданные ИИ-инструментами, вполне подходят для элементов окружения, реквизита и быстрых прототипов, но персонажи, транспортные средства и любые объекты, требующие позиционирования швов с точностью до пикселя, выигрывают от ручной доработки. Стандартная автоматическая развёртка часто размещает швы так, что они становятся заметными при пристальном рассмотрении. Небольшая ручная правка развёртки в Blender решает эту проблему.
Рабочий процесс доработки: превращение AI-меша в готовый игровой ассет
Для ассетов, требующих ручной работы с UV, путь прямолинеен. Сгенерируйте меш, откройте его в Blender, выполните быструю проверку на замкнутость (манифолдность), отметьте швы там, где они должны быть, выполните развёртку (UV unwrap), проверьте упаковку островов и тексельную плотность, затем экспортируйте. Руководство о том, как упорядочить UV-развёртку в Blender описывает пошаговый процесс. Такие инструменты, как Triverse AI, генерируют меши, готовые к экспорту, с PBR-текстурами, поэтому ручной этап UV — это связующее звено между скоростью генерации и продакшн-качеством, а не пересоздание с нуля.

Развертка UV, UV-картирование и запекание текстур: разбираемся в терминологии
Эти три термина часто используются как взаимозаменяемые, однако этого делать не следует. Чтобы понять формальные различия, обратитесь к статье о UV-развёртке в Википедии, где подробно описан каждый этап.
UV-развёртка — это этап выпрямления. Она разрезает поверхность и раскладывает её.
UV-маппинг — это более широкий процесс, включающий развёртку, проецирование и компоновку 2D-координат на модели. Развёртка является одной из частей маппинга.
Запекание текстур извлекает данные с высокополигональной модели, такие как нормали или окклюзия (ambient occlusion), и переносит их на низкополигональную модель, используя UV-развёртку как основу. Без корректной UV-развёртки запекание невозможно. Процесс запекания карты нормалей полностью зависит от наличия корректной UV-развёртки.
Распространенные ошибки при развертке UV (и как их избежать)
- Перед развёртыванием не отмечено ни одного шва. Инструмент выбирает разрезы за вас, как правило, неудачно. Сначала отметьте швы.
- Швы на лице персонажа. Переместите их к линии роста волос, ушам или затылку.
- Перекрытие островов. Проверьте UV-развёртку перед запеканием текстур. Перекрытие ломает карты нормалей.
- Несогласованная плотность текселей среди ассетов сцены. Установите целевое значение и измерьте фактическое.
- Распространённая ошибка — забывать UV-канал лайтмапы для запекания освещения. Для уникальных текстур и лайтмап нужны отдельные каналы.
- Автоматическая развертка сложных органических моделей без ручного вмешательства. Для персонажей требуется ручная расстановка швов.
Главное
Развёртка UV — это процесс преобразования трёхмерной поверхности в двумерную UV-развёртку. Основные элементы этого процесса — швы, острова и упаковка. Ошибки при развёртке приводят не только к ошибкам предпросмотра, но и к растянутым текстурам, заметным швам и артефактам запекания. Выбор подхода прост: для простых объектов подходит автоматическая развёртка, для персонажей или геройских ассетов требуется ручная расстановка швов, а для крупных ассетов, выходящих за пределы одного тайла, используется UDIM. Генераторы 3D-моделей на базе ИИ, такие как Triverse AI, пропускают этап первичной UV-развёртки, однако для любых моделей, используемых как геройские ассеты, всё равно необходима ручная доработка. Научитесь читать UV-развёртку — и вы перестанете гадать, почему ваши текстуры отображаются некорректно.


