Запікання карт нормалей (Normal Map) для моделей ігор

Правильно запекла карта нормалей робить low-poly модель з 3000 полігонів невідмінною від мільйонного high-poly оригіналу. Погана нормал-карта — це темні смуги на гранях, шви на UV-межах та «плоскі» поверхні під боковим світлом. Технічно [Normal map](https://en.wikipedia.org/wiki/Normal_mapping) запі

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

Інші послуги студії

VR/AR/MR застосунки на замовлення

Вражайте клієнтів і навчайте команду у віртуальній реальності

Розробка ігор на Unity

Від ідеї до релізу — ігри, які запам'ятовуються

3D-моделювання та анімація

Оживимо ваш продукт в об'ємній графіці та анімації

VR-тренажери промислового обладнання

Тренуємо операторів на техніці без ризику і простою

AR-інструкції для виробництва

Покрокові підказки прямо на обладнанні — без паперу

Safety-тренажери

Відпрацювання НС і техніки безпеки без виходу на об'єкт

VR/AR-тренінги

Навчаємо персонал сервісу, адаптації та soft skills у VR

Навчальні вікторини

Перевірка знань у форматі гри — легко і без стресу

Корпоративні відеоінструкції

Зрозумілі ролики для навчання співробітників і клієнтів

Гейміфікація бізнес-процесів

Мотивуємо команду через ігрові механіки в KPI та HR

Застосунки для інфокіосків

Інтерактивні екрани для магазинів, стендів і офісів

VR/AR-інсталяції

Wow-ефект для брендів на виставках, івентах і в шоу-румах

Віртуальні виставки та музеї

Ваша експозиція доступна з будь-якої точки світу — 24/7

Event-квести та брендовані ігри

Незабутні ігри для конференцій та клієнтських івентів

Часті запитання

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

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    1526
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    1030
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    657
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    738
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Навчальна вікторина для дітей «Покупки в магазині»
    142

Правильно запекла карта нормалей робить low-poly модель з 3000 полігонів невідмінною від мільйонного high-poly оригіналу. Погана нормал-карта — це темні смуги на гранях, шви на UV-межах та «плоскі» поверхні під боковим світлом. Технічно Normal map запікається за хвилини. Запекти правильно — це вже питання знання конкретних налаштувань, розуміння tangent space та вміння передбачати артефакти до їх появи. Ми займаємось геймдев-пайплайном понад 5 років, запікали асети для 15+ ігор, включаючи мобільні та PC проєкти. Наша експертиза дозволяє гарантувати чистий результат, який пройде QA в будь-якому рушії.

Чому виникають артефакти на нормал-картах?

Tangent space mismatch — запікання карт нормалей

Це, мабуть, найнеочевидніша причина «правильної» нормал-карти, яка виглядає неправильно в рушії. Marmoset Toolbag, xNormal, Substance Painter і кожен рушій використовують свої конвенції tangent space. Unity (Standard та URP/HDRP) — MikkTSpace. Unreal Engine — теж MikkTSpace, але з особливостями обробки hard edges в UE4 vs UE5. Godot — MikkTSpace. Якщо карта запеклася в одному tangent space та імпортована в рушій з іншим, отримаємо некоректне освітлення: замість рельєфу — дивні відблиски не в тих місцях.

Рішення: в Marmoset Toolbag 4 виставляємо Tangent Space → MikkTSpace. В Substance Painter це налаштування при імпорті меша (Compute Tangent Space Per Fragment). Перевіряємо результат в самому рушії, а не тільки в preview інструмента.

Hard edge + UV seam незбіг

Стандартна геометрія hard-surface має hard edges (smoothing group breaks) на конструктивних ребрах. Якщо UV seam не збігається з цими ребрами, baker інтерполюватиме нормалі через seam — результат: темна або світла смуга вздовж ребра. Правило одне: кожен hard edge повинен бути UV seam, кожен UV seam на hard-surface — hard edge. Це не рекомендація, це обов'язкова умова.

У Blender це робиться через Edge → Mark Sharp + Mark Seam на одних і тих самих ребрах. У Maya — через Mesh Display → Soften/Harden Edge і UV Seam на збігаючих ребрах. У 3ds Max — Smoothing Groups + UV seam за тією ж логікою.

Cage та projection misses

Для складної геометрії з увігнутими формами, флоатинг деталями або з великим розходженням між HP та LP в Marmoset Toolbag необхідно працювати з Bake Groups. Кожна флоатинг деталь — окрема група з індивідуальним cage offset. Без цього baker кидає промені через неправильну геометрію та отримує чорні плями або інвертовані нормалі в зонах перетину.

Як правильно налаштувати запікання в Marmoset Toolbag 4?

Marmoset Toolbag 4 — основний інструмент для production bake. Налаштування для фінального запікання:

  • Samples: 512 для 4096 карт, 256 для 2048. Нижче — noise на складних переходах.
  • Dilation: 32px для 4096, 16px для 2048. Критично для mip-map bleeding.
  • Tangent Space: MikkTSpace (для більшості рушіїв).
  • Max Frontal / Rear Distance: індивідуально під кожен асет. Занадто великий rear distance — baker захоплює geometry зі зворотного боку. Занадто малий — misses на деталях з великим offset від LP.

Для флоатинг geometry: окремий Bake Group для кожної групи флоатингу. Max Frontal Distance = трохи більше відстані від LP поверхні до дальньої точки флоатинг об'єкта. Rear Distance = мінімальний.

У xNormal використовуємо той самий підхід, але через .hnmap файл налаштувань cage для кожного асета. xNormal швидший на великих сценах та корисний для batch bake коли потрібно запекти 50+ об'єктів одночасно.

Порівняння інструментів запікання:

Інструмент Швидкість Tangent Space Особливості
Marmoset Toolbag 4 Висока MikkTSpace Найкращий preview, підтримка cages
xNormal Дуже висока Standard (налаштовуваний) Найкращий batch bake, відкритий вихідний код
Substance Painter Середня Per Fragment Інтеграція з текстуруванням

Як перевірити нормал-карту перед передачею?

Запечену карту обов'язково перевіряємо в рушії — не тільки в Marmoset. Причина: preview в Toolbag використовує власний PBR рендер, який може маскувати проблеми, непомітні при стандартному освітленні в рушії.

Приклад артефакту: смуга на hard edgeЯкщо hard edge та UV seam не збігаються, на ребрі з'являється темна або світла смуга. Це перевіряється при grazing angle освітленні в рушії.

Чеклист перевірки:

  • Освітлення з трьох сторін: ключове, бокове, backlight
  • Extreme angles: камера майже паралельно поверхні (grazing angle)
  • Перевірка граней: чи нема темних смуг вздовж hard edges
  • Перевірка seam-ів: чи нема видимих швів по UV boundary

Якщо карта пройшла перевірку в рушії — вона готова. Гарантуємо, що при дотриманні цих кроків ви отримаєте чисту нормал-карту без артефактів.

Що входить в роботу

  • Консультація з підготовки high-poly та low-poly геометрії
  • Налаштування bake-проекту в Marmoset Toolbag 4 / xNormal залежно від завдання
  • Запікання всіх необхідних карт: Normal, Ambient Occlusion, Cavity, Curvature, Thickness, World Space Normal
  • QA у цільовому рушії (Unity, Unreal, Godot)
  • Передача вихідників (.fbx, .tga, project files)
  • Коригування UV при необхідності

Орієнтири по термінах

Асет Карти Терміни
Простий проп (зброя, інструмент) Normal + AO 2–6 годин
Середньоскладний об'єкт (техніка, деталі) Full PBR 4–10 годин
Персонаж (один UV tile) Full PBR 1–3 дні
Складний асет з флоатингом Full PBR 2–4 дні
UDIM персонаж (4–6 тайлів) Full PBR per tile 3–6 днів

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

Зв'яжіться з нами, щоб обговорити ваш проєкт та отримати консультацію з пайплайну. Замовте оцінку вашого асета за референсами — це займе один день.