UV-преобразование

Из Википедии, бесплатной энциклопедии

Равнопромежуточная проекция — пример наложения двухмерной текстуры (координаты U, V) на трёхмерный глобус (координаты X, Y, Z)
Шахматная текстура на сфере: слева — общая матрица на всю сферу, справа — развёртка с равнопромежуточной проекцией
Пример наложения текстуры на куб. Текстура имеет вид плоской развёртки

UV-преобразование или развёртка в трёхмерной графике (англ. UV map) — соответствие между координатами на поверхности трёхмерного объекта (X, Y, Z) и координатами на текстуре (U, V). Значения U и V обычно изменяются от 0 до 1[1]. Развёртка может строиться как вручную, так и автоматически — например, в 3Ds Studio MAX есть несколько алгоритмов автоматического развёртывания модели.

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

Критерии качества развёртки

[править | править код]

Основные показатели качественной развёртки включают:

Эффективное использование текстуры - необходимость максимально заполнять доступное пространство текстуры, учитывая при этом требования к MIP-текстурированию. Как отмечают разработчики Valve, для корректной генерации уменьшенных копий текстур по краям развёртки требуется оставлять специальные припуски[2].

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

Минимизация искажений - избегание значительных геометрических деформаций текстуры, которые могут привести к визуальным артефактам.

Соответствие стандартным ракурсам - ориентация элементов развёртки согласно типовым углам обзора объекта, что существенно облегчает работу художника по текстурам.

Оптимальное расположение швов - размещение границ развёртки (швов) в наименее заметных местах, таких как естественные складки или стыки деталей. Например, при создании персонажей для Dota 2 разработчики специально требовали выделять глаза в отдельный UV-островок[2].

Баланс симметрии - для частично симметричных объектов важно комбинировать симметричные участки (упрощающие текстурирование) с асимметричными элементами, добавляющими реалистичность модели.

[2]

Пример: равнопромежуточная проекция

[править | править код]

В картографии цилиндрическая проекция — семейство проекций, которые преобразуют меридианы в вертикали (U=const), а параллели в горизонтали (V=const). Одна из цилиндрических проекций, так называемая равнопромежуточная проекция (φ — широта, [−π; π]; λ — долгота, [−½π; ½π]):

Подобное преобразование можно применить и в компьютерной графике, чтобы наложить текстуру земной поверхности на трёхмерный шар. По этим метрикам:

  • Использование площади текстуры: отлично. Использована вся площадь текстуры.
  • Отсутствие областей с недостаточной/избыточной детализацией: средне. У полюсов избыток детализации.
  • Сходство со стандартными ракурсами: хорошо. Такая проекция похожа на обычные картографические, хоть и не совпадает с ними.
  • Отсутствие швов: отлично. Существует один шов по меридиану (между U=0 и U=1). Шов можно сделать максимально незаметным, расположив на его месте океан; также, циклически сместив текстуру, можно аккуратно прорисовать шов, а затем сместить обратно.
  • Геометрические искажения: плохо. У полюсов поверхность Земли сильно искажена.
  • Симметрия: неприменимо. Глобус несимметричен.

UVW-преобразование

[править | править код]

Рисованные и фотографические текстуры используют только две координаты: U и V. В случае автогенерируемых текстур или мультитекстурирования возможна третья координата — W, глубина в «континууме текстур»[3]. Например, W=0 может быть песком, W=1 — камнями, промежуточные значения — песком, из которого выглядывают камни.

Теоретически возможны четвёртая, пятая и т. д. координаты — однако графическое аппаратное обеспечение, накладывая текстуры, проводит преобразование [4] и отбрасывает третью координату. UVW-преобразование задействует отброшенную координату на переходы от одной текстуры к другой: это оживляет «заэкранный мир», не меняя серьёзно конструкцию видеоплаты.

Примечания

[править | править код]
  1. Есть также режим, когда U и V произвольны, а видеоплата берёт дробную часть, это позволяет покрыть поверхность повторяющейся текстурой. Однако в таком режиме развёртку готовят алгоритмически, а не вручную.
  2. 1 2 3 DOTA 2 item UV mapping. Дата обращения: 30 ноября 2016. Архивировано из оригинала 30 ноября 2016 года.
  3. 3ds Max UVW Mapping - CGWiki. Дата обращения: 29 июля 2013. Архивировано из оригинала 21 сентября 2013 года.
  4. Если быть точным, графический ускоритель оперирует 4-мерными векторами, которые представляют собой однородные координаты точки в R³