Створення карт кривизни (Curvature) та товщини (Thickness)

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

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

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

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Створення карт кривизни (Curvature) та товщини (Thickness)
Проста
~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

Створення карт кривизни (Curvature) та товщини (Thickness)

Curvature та Thickness — не найочевидніші текстури в PBR-конвеєрі, але саме вони відповідають за той "живий" матеріал, який відрізняє AAA-арт від технічно грамотного, але плоского асету. Проблема виникає не при запіканні — Baker у Marmoset Toolbag чи Substance Painter справляється за секунди. Проблема в тому, що запечені карти виявляються непридатні: шум на плоских поверхнях, артефакти на скругленнях, неправильний bias у зонах контакту між мешами.

Чому Curvature Map отримує артефакти

Найчастіша ситуація: художник запікає Curvature у Marmoset Toolbag 4 з типовими параметрами і отримує карту, де всі гострі кути виглядають правильно, а на плоских гранях — білий шум. Причина — параметр Ray Distance встановлено занадто високо, промені торкаються сусідніх островів UV і дають хибні опуклості.

Виправляється шляхом зниження Ray Distance до значень, при яких промінь едва досягає high-poly. Для меша персонажа з розбивкою на Baker Groups — окремий cage для кожної групи. У Substance Painter та ж проблема вирішується через bake per material з явно заданим Max Frontal Distance.

Другий джерело проблем — seam bleeding. Якщо UV-розгортка виконана без відступу 2–4 пікселя по краях кожного острова, кривизна з сусідніх островів затікає в шов. На 2K-текстурі для мобільного асету це видно одразу; на 4K для PC — при певному куті камери.

Thickness Map — окрема історія. Вона запікається як AO з інвертованими нормалями: промені йдуть всередину меша і фіксують відстань до протилежної стінки. Для тонких деталей — ушей персонажа, пелюстків, країв накидки — ця карта дає Subsurface Scattering коректний ввід. Без неї SSS працює рівномірно, і тканина виглядає як пластик.

Інструменти та підхід до запікання

Для виробничого конвеєру використовуємо три варіанти залежно від завдання:

Marmoset Toolbag 4 — переважний інструмент, коли потрібен контроль над cage та Baker Groups. Дозволяє налаштовувати Curvature через Curvature Intensity, Curvature Bias та Curvature Smooth Angle. Smooth Angle критичний: при 180° карта захоплює всі нормалі як криві, при 0° — лише геометричні ребра.

Substance Painter 9 — зручний, коли запікання йде прямо в робочому шарі. Curvature тут генерується з нормальної карти, а не з геометрії, що швидше, але менш точно на low-poly з гострими кутами без згладжування.

Blender + BakeMaster addon — для інді-проектів, де немає ліцензій на Marmoset. Налаштовується через Cycles з кастомним нодграфом: Geometry Node → Pointiness → Color Ramp → Image Texture. Thickness запікається як AO з Local Space та інвертованою нормаллю.

Незалежно від інструменту, перед запіканням меш повинен пройти кілька перевірок:

  • Нормалі high-poly усереднені коректно — без перевернутих граней
  • Smooth Groups на low-poly збігаються з UV-швами
  • Cage не перетинає себе в зонах вгинутостей
  • UV-острови мають однаковий texel density по всьому асету

Як Curvature використовується в матеріалі

Запечена Curvature Map у чистому вигляді — проміжний результат. У Substance Painter вона подається в Generator Metal Edge Wear як маска для edge highlighting. У ShaderGraph Unity вона використовується як вхід для lerp між двома матеріалами: на опуклостях метал стертий до блиску, у западинах — накопилася грязь.

Правильний workflow: Curvature → Color Ramp (налаштувати конкретні діапазони) → маска на шарі. Без Color Ramp карта дає занадто широку маску, і ефект виглядає розмито.

Для Thickness — підключення до параметра Thickness у Lit Shader з увімкненим Subsurface Scattering. У URP/HDRP це Subsurface Mask Map у каналі A. У кастомному шейдері — окрема текстура, семплюється в фрагментному шейдері для розрахунку глибини розсіювання.

Типові помилки, які коштують дорого

Запікання без Baker Groups. Якщо у персонажа рука перекриває торс при позі A-Pose, Marmoset запече кривизну торса з урахуванням тіні від руки. Розділення на групи вирішує це — кожна частина тіла запікається ізольовано.

Curvature з неправильним Smooth Angle. Значення 90° підходить для hard-surface. Для органіки — 160–180°, інакше всі м'язові переходи виглядають як графіті з білих плям.

Thickness на відкритій геометрії. Якщо меш не закритий (відкритий циліндр, наприклад), промені йдуть в нескінченність і повертають 0. Потрібно либо закрити геометрію тимчасовими заглушками, либо обмежити Ray Distance до передбачуваної максимальної товщини об'єкта.

Використання 8-bit для Curvature. Карта кривизни — градієнтні дані. На 8-bit з'являється banding на плавних переходах. Для фінального матеріалу Curvature зберігається в 16-bit, конвертуючи в 8-bit лише за необхідності економії пам'яті на мобільних платформах.

Процес роботи над картами

На практиці запікання Curvature та Thickness займає невелику частину від загального часу, але помилка тут тягне за собою переробку кількох шарів матеріалу. Тому починаємо з аудиту меша: перевіряємо UV-острови, Baker Groups, правильність Smooth Groups.

Масштаб завдання Орієнтовна тривалість
Один hero-асет, до 5 UV-наборів від 4 до 8 годин
Персонаж з повним набором LOD від 1 до 2 днів
Оточення (пропси + модульні плитки) від 3 до 7 днів
Запікання для існуючого конвеєру (інтеграція у команду) за домовленістю

Після запікання — перевірка на тестовій сфері зі стандартним матеріалом, де Curvature подається прямо як Albedo. Швидкий спосіб побачити всі артефакти до того, як вони сховалися під шарами грязі та подряпин.

Вартість визначається після перегляду меша та технічного завдання — кількість UV-наборів, цільова розрізняльна здатність текстур та вимоги рушія впливають на трудовитрати прямо.