UV-развёртка без садизма: швы, растяжения и pack

12 сен 2026 · 7 мин · 💬 1

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

Что такое растяжение и откуда оно берётся

Представьте, что вы разворачиваете мандариновую кожуру. Целая сфера плоской не станет — где-то она порвётся или растянется. То же с 3D-сеткой: области с двойной кривизной (сфера, торс, морда) математически не разворачиваются без искажений. Можно только выбрать, где рвать (швы) и где терпимо растянуть.

Проверка — шахматная текстура (checker). В Blender: Assign Checker-материал → Edit Mode → Numpad 7 (вид сверху UV) → ортотекстура. Квадраты должны быть квадратами везде. Ромбы и прямоугольники = растяжение; чем сильнее, тем заметнее будет текстура на модели.

Правила швов

  1. Невидимость. Швы — подмышка, внутренняя сторона бедра, затылок, подошва, низ стола. Никогда — по центру лица, по передней стороне руки, по видному ребру брони.
  2. Меньше обреза. Каждый шов — это место, где две половины текстуры должны сойтись идеально. 30 швов на камне не нужны, хватит трёх.
  3. По направлениям формы. cylinders разрезаются одной продольной линией, сферы — «зубчиком» из нескольких долек. Буква L разворачивается лучше прямоугольника: меньше лоскутов.

Мой процесс в Blender

  • U → Smart UV Project только для пропсов-расходников и блокетов. Для персонажей и героя-пропсов — никогда: автоматика нарезает сотню осколков и убивает плотность.
  • Ручной маршрут: выделить петли (Alt+клик) → Mark Seam (Ctrl+E) → выделить всё (A) → U → Unwrap.
  • Average Islands Scale (UV меню) — выравнивает плотность всех островков. Без него рукав получит 500 px/m, а torso 150 — и текстура будет мыльной на одних частях, пиксельной на других.
  • Pack Islands с Margin 0.003–0.005: зазор между островками спасает от «кровотечения» текстур при фильтрации. Для атласов 2048 ставлю margin побольше.

Плотность (texel density) — слово, которое отличает профи

Texel density — сколько текстуры приходится на метр поверхности. Стандарт индустрии для героев ~1024 px на метр при атласе 2K, для окружения 512 px/м. Проверяю так: островок куба 1×1 м должен занимать на атласе квадрат «сторона атласа / метраж». Blender: аддон UV Toolkit или вручную — выделите остров, смотрите dims в UV-редакторе.

Разная плотность на одном атласе — это не катастрофа, если она осмысленная: лицо плотнее ботинок. Катастрофа — случайная.

Типовые грабли

  • Островки друг на друге. Pack не сделал, вручную наложил — запёкшаяся нормаль покажет шов двойной линией. Проверяю Overlap: UV → Select Overlaying.
  • Зеркалка без дублирования текстур. Зеркалю геометрию — получаю зеркальные надписи на логотипе. Либо отдельный UV, либо мириться.
  • Шов на нормал-карте по видимому ребру. Один пиксель рассинхрона на шве — и на границе виден «стык пластыря». Сшиваю плотнее или переношу шов.

Хорошая развёртка невидима: текстура лежит ровно, плотность одинаковая, швов не видно. Видна только плохая — и тогда игрок вспоминает вашу фамилию нехорошими словами.

Комментарии (1)

Форма для гостей комментариев пока не принимается — писать можно автору (expeot@outlook.com) или через владельца блога. Все записи выше настоящие, никто их не модерирует молча.