Запікання карт нормалей та текстурних карт графіки

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

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

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

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Запікання карт нормалей та текстурних карт графіки
Середня
від 4 годин до 2 робочих днів
Часті питання

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

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

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

  • 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

Запікання карт нормалей і текстурних карт графіки

Запікання — це переведення геометричної інформації high-poly моделі в текстурні дані. Різниця між «просто запечи» і «запечи правильно» — це різниця між артефактами на кожній жорсткій грані і чистій карті, яка працює при будь-якому освітленні.

Процес здається простим: завантаж high-poly і low-poly, натисни Bake у Marmoset Toolbag, отримай карту. На практиці 30% часу уходит на настройку, 40% — на виправлення артефактів, і тільки 30% — на сам bake.

Які артефакти виникають і чому

Shadowing artifacts на hard edges. Класика: normal map виглядає нормально при прямому освітленні, але при боковому світлі на гранях з'являються темні смуги. Причина — невідповідність smoothing groups на low-poly і граничних seam-ів UV. Правило, яке виправляє це у 90% випадків: seam UV повинен збігатися з hard edge (smoothing group break). Це називається matched UV/smoothing workflow і це не опція, а обов'язкова умова для коректного bake.

Projection artifacts. При невідповідності об'ємів high-poly і low-poly baker намагається знайти найближчу поверхню через ray casting і промахується — особливо на складних увігнутих формах і тонких елементах. У Marmoset Toolbag це вирішується через групи запікання (Bake Groups): кожна деталь з великим розходженням об'ємів виділяється в окремену групу з індивідуальним cage.

Seam-и на normal map. Видимі розриви по границям UV islands. Причина — недостатній padding (2px замість необхідних 8px) або floating geometry, яку baker інтерпретує неоднозначно. У xNormal ця проблема вирішується через Edge Padding post-process. У Marmoset Toolbag — через Dilation настройку в Output параметрах.

Tangent space невідповідність. Normal map запечена в одному tangent space, рушій використовує інший — результат: неправильне освітлення, блики не там де потрібно. Unity використовує MikkTSpace, Unreal Engine — теж MikkTSpace, але з нюансами в UE4 vs UE5. Marmoset Toolbag і Substance Painter підтримують настройку tangent basis — її потрібно виставити в відповідності з цільовим рушієм до запікання.

Повний стек і настройки

Marmoset Toolbag 4 — основний інструмент для bake. Причина: Bake Groups з per-group cage, підтримка UDIM, правильний tangent basis для більшості рушіїв, зручний preview в реальному часі. Настройки: Samples 256–512 для фінального bake, Dilation 32px для 4096 текстур, Cage Offset індивідуально під кожну групу.

xNormal — використовується для складних випадків з custom cage і для пакетного запікання великої кількості об'єктів. Швидше Toolbag на більших сценах, але preview слабший.

Substance Painter — коли bake і текстурування йдуть в одному інструменті. Match by Mesh Name workflow: low-poly називається Object_low, high-poly — Object_high. Painter автоматично матчить пари і запікає окремо. Це критично для складних ассетів з десятками деталей.

Карти, які запікуємо стандартно: Normal Map (tangent space), Ambient Occlusion, Curvature, Position, Thickness, World Space Normal. Останні три потрібні для процедурних масок у Substance Painter. AO запікається з настройкою Ray Distance і Ignore Backfaces — без цього кавернатні деталі дають неправильні тені.

Для персонажів з UDIM workflow запікання робиться per-tile: кожен тайл (1001, 1002, 1003...) запікається з урахуванням своєї геометрії. Marmoset Toolbag 4 підтримує UDIM bake нативно — це одна з причин, чому він став стандартом у character pipeline.

Процес роботи

На вході потрібні: high-poly mesh (FBX/OBJ), low-poly mesh з готовим UV, інформація про цільовий рушій (для tangent basis), розмір текстурного атласу.

Перевірка пари HP/LP. Дивимось відповідність об'ємів, виявляємо проблемні зони — тонкі деталі, гострі кути, увігнуті форми.

Настройка bake groups. Розбиваємо модель на групи по типу поверхні і складності геометрії. Флоатинг геометрія (клепки, накладки, деталі) — в окремі групи.

Тестовий bake. На зменшеному розрішенні (512 або 1024) перевіряємо всі критичні зони. Виправляємо smoothing groups, переміщуємо seam-и, правимо cage.

Фінальний bake. Повне розрішення, максимальний sampling. Постпроцессинг: edge dilation, фільтрація.

QA у рушії. Карти перевіряються в цільовому рушії або в Marmoset Viewer під кількома варіантами освітлення — ключовий, боковий, backlight.

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

Тип ассета Кількість карт Строки
Простий проп Normal + AO 4–8 годин
Зброя / екіпіровка Full PBR set 1–2 дні
Персонаж (один UV tile) Full PBR set 2–4 дні
Персонаж UDIM (4–6 тайлів) Full PBR set 3–6 днів

Вартість розраховується після аналізу вихідників.