Налаштування UDIM-плиток для високодетальної графіки

Наша компанія з розробки відеоігор веде незалежні проекти, спільно з клієнтом створює ігри та надає додаткові операційні послуги. Досвід нашої команди дозволяє нам охопити всі ігрові платформи та розробити приголомшливий продукт, що відповідає баченню клієнта та перевагам гравців.

Від імерсивних застосунків до ігрових світів і 3D-сцен

Наша виділена команда для VR/AR/MR-розробки, Unity-продакшну і 3D-моделювання та анімації — з власними кейсами і презентаціями.

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Налаштування UDIM-плиток для високодетальної графіки
Середня
~1 робочий день
Часті питання

Наші компетенції

Які етапи розробки гри?

Останні роботи

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    683
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    862
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    491
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    533

Настройка UDIM-плиток для високодетальної графіки

UDIM — це не просто «більше текстур». Це архітектурне рішення, яке змінює весь pipeline роботи з високодетралізованими ассетами. Якщо UV одного персонажа займає один квадрат (0–1 UV space) при текстурі 4096×4096, то UDIM дозволяє цьому ж персонажу мати 6 квадратів по 4096×4096 кожен — суммарно еквівалент 10k текстури без її фактичного існування.

Unreal Engine 5 з Nanite і Virtual Texturing, Marmoset Toolbag 4, Substance Painter — всі нативно підтримують UDIM. Це стандарт для hero character в AAA-production і для cinematic ассетів. На малобюджетних mobile іграх UDIM не потрібен — там завдання обернена. Але якщо проект нацелений на PC/Console з високою деталізацією, або це рендер для CG/кіно, без UDIM не обійтися.

Що робить UDIM складніше звичайного UV layout

Управління тайлами. У звичайному UV все в одному квадраті. У UDIM кожен тайл — це квадрат у координатах 1001, 1002, 1003... (U offset = тайл — 1001, значить тайл 1005 починається з U=4). Для Substance Painter це 10 текстур замість однієї. Для Marmoset — один bake project з UDIM mode. Для рушія — UDIM texture stack з virtual texturing. Кожна ланка пайпліну повинна бути настроєна під UDIM, інакше де-небудь отримаємо неправильну адресацію тайлів.

Планування розподілу по тайлам. Стандартна схема для humanoid персонажа: тайл 1001 — голова, 1002 — торс, 1003 — руки, 1004 — ноги, 1005 — аксесуари/деталі. Але це не канон — залежить від візуальних пріоритетів. Персонаж, у якого руки постійно в кадрі (first-person shooter), може відати рукам два тайли. Правило одне: розподіл по тайлам повинен бути усвідомленим і зафіксованим на початку роботи, тому що переробити його потім — це переробити весь UV і всі текстури.

Texel density по тайлам. Кожен тайл — своє розрішення. Це значить, що обличчя на тайле 1001 при 4096×4096 і спина на тайле 1002 при 2048×2048 мають різний реальний texel density. Це нормально і навіть бажано — економить пам'ять без втрати якості в пріоритетних зонах. Але потрібно чітко розуміти, якій тайл якому розрішенню буде, ще до початку UV-роботи.

Граничні острова між тайлами. UV island не повинен пересікати границю тайла. Якщо остров проходить через U=1.0, він виявляється частково в тайле 1001, частково в 1002 — результат залежить від реалізації в конкретному інструменті і зазвичай непередбачуваний. Ключові seam-и повинні розташовуватись так, щоб острова не виходили за граници свого тайла.

Технічний процес настройки UDIM

Працюємо в Rizom UV як основному інструменті — він має нативну UDIM підтримку з візуальною розбивкою по тайлам. Blender з add-on UVPackmaster 3 також підтримує UDIM packing.

Визначення схеми тайлів. До початку розгортки фіксуємо: скільки тайлів, яке розрішення у кожного, що в якому тайлі. Це узгоджується з lead-художником по текстурам і технічним директором проекту.

Seam placement. Аналогічно стандартному UV, але з додатковою умовою: seam по зонним границям (наприклад, шия — границя між тайлом голови і тайлом тіла) повинен бути розташований так, щоб не давати видимих швів на стику текстур різного розрішення.

Unwrap per tile. Розворачуємо кожну зону незалежно в своєму тайлі. Lizom UV дозволяє працювати з кількома тайлами одночасно в єдиному viewport.

Texel density normalization per tile. У кожному тайлі вирівнюємо texel density відносно розрішення цього тайла. Голова в тайле 1001 при 4096: пріоритетні зони (обличчя) — 1024 px/m, периферійні (затилок) — 512 px/m.

Packing. UVPackmaster з UDIM mode або ручне розміщення в Rizom UV. Завдання — максимальне використання кожного тайла без виходу за граници квадрата [0..1] x [0..1] кожного тайла.

Інтеграція з Substance Painter. Імпорт через File → Import Mesh з UDIM mode включеним. Substance Painter створює texture set для кожного тайла автоматично. Bake у UDIM mode: кожен тайл запікується незалежно з урахуванням своєї геометрії.

Інтеграція з Unreal Engine 5. При імпорті меша з UDIM в UE5 включаємо Virtual Texture в Texture Group для UDIM stack. Для Nanite ассетів UDIM підтримується нативно в UE5.1+.

Орієнтири по срокам

Масштаб UDIM setup Тайлів Строки
Простий об'єкт (2–3 тайли) 2–3 1–2 дні
Humanoid персонаж 4–6 3–6 днів
Складний персонаж (одежа, броня) 6–10 5–10 днів
Environment ассет з UDIM 4–8 3–7 днів

Строки включають UV розгортку й UDIM настройку, без текстурування. Вартість розраховується після аналізу проекту і узгодження схеми тайлів.

Що потрібно уточнити до початку роботи

  • Цільовий рушій і версія (впливає на підтримку UDIM і Virtual Texturing)
  • Розрішення для кожного тайла (4096/4096, 4096/2048 — змішані допустимі)
  • Pipeline текстурування: Substance Painter, Mari або інше
  • Чи потрібен одночасно стандартний UV (для LOD або мобільної платформи)