UV-картирование — это процесс 3D-моделирования , при котором поверхность 3D-модели проецируется на 2D-изображение для наложения текстуры . Буквы «U» и «V» обозначают оси 2D-текстуры, поскольку «X», «Y» и «Z» уже используются для обозначения осей 3D-объекта в пространстве модели, в то время как «W» (в дополнение к XYZ) используется при вычислении вращений кватернионов , обычной операции в компьютерной графике .
UV-текстурирование позволяет раскрашивать полигоны, составляющие 3D-объект, цветом (и другими атрибутами поверхности) из обычного изображения. Изображение называется UV-текстурной картой. [1] Процесс UV-текстурирования включает назначение пикселей на изображении поверхностным отображениям на полигоне, обычно выполняемое «программным» копированием треугольной части карты изображения и вставкой ее в треугольник на объекте. [2] UV-текстурирование является альтернативой проекционному отображению (например, с использованием любой пары координат модели X, Y, Z или любого преобразования положения); оно отображает только в текстурное пространство , а не в геометрическое пространство объекта. Вычисление рендеринга использует координаты UV-текстуры для определения того, как раскрашивать трехмерную поверхность.
В примере справа сфере придается клетчатая текстура двумя способами. Слева, без UV-картирования, сфера вырезана из трехмерных шашек, застилающих евклидово пространство. С UV-картированием шашки застилают двумерное UV-пространство, а точки на сфере отображаются в это пространство в соответствии с их широтой и долготой .
Когда модель создается как полигональная сетка с помощью 3D-моделера , UV-координаты (также известные как текстурные координаты ) могут быть сгенерированы для каждой вершины в сетке. Один из способов заключается в том, чтобы 3D-моделер развернул сетку треугольников по швам, автоматически разместив треугольники на плоской странице. Например, если сетка представляет собой UV-сферу, моделер может преобразовать ее в равнопрямоугольную проекцию . После того, как модель развернута, художник может нарисовать текстуру на каждом треугольнике по отдельности, используя развернутую сетку в качестве шаблона. Когда сцена визуализируется, каждый треугольник будет сопоставлен с соответствующей текстурой из « листа декалей ».
UV-карта может быть либо сгенерирована автоматически программным приложением, либо создана вручную художником, либо может быть комбинацией того и другого. Часто UV-карта генерируется, а затем художник корректирует и оптимизирует ее, чтобы минимизировать швы и наложения. Если модель симметрична, художник может наложить друг на друга противоположные треугольники, чтобы можно было рисовать обе стороны одновременно.
UV-координаты опционально применяются к каждой грани. [2] Это означает, что общая пространственная позиция вершины может иметь разные UV-координаты для каждого из ее треугольников, поэтому смежные треугольники можно разрезать и размещать в разных областях текстурной карты.
Процесс UV-картирования в простейшем случае состоит из трех шагов: развертка сетки, создание текстуры и применение текстуры к соответствующей грани полигона. [1]
UV-картирование может использовать повторяющиеся текстуры или инъекционное «уникальное» картирование в качестве предварительного условия для запекания .
Для любой точки сферы вычислите , представляющий собой единичный вектор от точки до начала координат сферы.
Предполагая, что полюса сферы совмещены с осью Y, UV-координаты в диапазоне можно рассчитать следующим образом: