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

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

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

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

  • Максимально полное использование площади текстуры. Впрочем, в зависимости от разрыва между «минимальными» и «максимальными» системными требованиями, по краям развёртки текстуре нужен определённый «припуск» на генерацию текстур меньшего размера.[2]
  • Отсутствие областей с недостаточной или избыточной детализацией текстуры.
  • Отсутствие областей с излишними геометрическими искажениями.
  • Сходство со стандартными ракурсами, с которых обычно рисуется или фотографируется объект — упрощает работу художника по текстурам.
  • Удачно расположенные «швы» — линии, соответствующие одному ребру, но расположенные в разных местах текстуры. Швы желательны, если есть естественный «разрыв» поверхности (швы одежды, кромки, сочленения и т. д.), и нежелательны, если таковых нет. В моделировании персонажей Dota 2 участвовали любители со всего мира, и руководство по моделированию требовало, чтобы глаза были отдельным «островком» развёртки.[2]
  • Для частично симметричных объектов: удачное сочетание симметричных и асимметричных участков развёртки. Симметрия повышает детализацию текстуры и упрощает работу художника по текстурам; асимметричные детали «оживляют» объект.

Пример: равнопромежуточная проекция[править | править вики-текст]

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

u = \frac{\varphi}{2 \pi} + 0{,}5
v = \frac{\lambda}{\pi} + 0{,}5

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

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

UVW-преобразование[править | править вики-текст]

Внимание! Функция 3D Studio MAX «UVW map» предназначена и для UV-, и для UVW-развёрток. Сюда писать только то, что связано с третьей текстурной координатой (W).

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

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

Примечания[править | править вики-текст]

  1. Есть также режим, когда U и V произвольны, а видеоплата берёт дробную часть, это позволяет покрыть поверхность повторяющейся текстурой. Однако в таком режиме развёртку готовят алгоритмически, а не вручную.
  2. 1 2 http://media.steampowered.com/apps/dota2/workshop/Dota2CharacterArtGuide.pdf
  3. 3ds Max UVW Mapping - CGWiki
  4. Если быть точным, графический ускоритель оперирует 4-мерными векторами, которые представляют собой однородные координаты точки в R³