Правильно запекла карта нормалей робить 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, інформація про цільовий рушій.
Зв'яжіться з нами, щоб обговорити ваш проєкт та отримати консультацію з пайплайну. Замовте оцінку вашого асета за референсами — це займе один день.
3D-моделювання для ігор
Уявіть: художник здає персонажа з 120 000 полігонів, мотивуючи це тим, що «так виглядає краще». На мобільному пристрої сцена з десяти таких персонажів впустить FPS до неіграбельних значень. Ми в студії GameArt щодня вирішуємо такі проблеми: наші моделі проходять суворий полігональний контроль та оптимізацію під цільову платформу. Понад 7 років ми випустили понад 50 ігрових проєктів — від мобільних гіперказуалок до PC-екшенів. Гарантуємо, що кожна модель впишеться в технічні вимоги без втрати візуальної якості. Замовте безкоштовний аудит вашого 3D-асета — оцінимо полігонаж і тексельну щільність за одну годину.
3D-моделювання для ігор — це не просто «зробити гарно». Це розстановка пріоритетів в обмеженому бюджеті трикутників і draw calls. Кожен етап пайплайну впливає на продуктивність у рантаймі. Пропуск ретопології або криві UV обертаються переробками на етапі інтеграції — ми це виключаємо на старті.
У цій статті розберемо ключові аспекти: від high-poly скульпту до фінальної збірки в Unity або Unreal Engine, з акцентом на практичні кейси. Ми проєктуємо моделі під конкретну платформу: для мобільних використовуємо низьку тексельну щільність (512 px/м), для PC — до 2048 px/м. Всі рішення приймаються на основі бенчмарків рушія та профілювання на реальному залізі.
Як оптимізувати 3D-моделі для різних платформ?
Цей аспект найчастіше ігнорується на старті проєкту — і саме він потім коштує переробок.
Стандартний пайплайн виглядає так:
- Концепт / референси — перш ніж відкривати ZBrush, потрібно розуміти силует, читаність та цільову платформу.
- High-poly sculpt — детальна скульптурна модель без обмежень по полігонах. Робиться в ZBrush або Blender (Sculpt Mode).
- Low-poly retopology — чиста ігрова сітка поверх high-poly, вручну або напівавтоматично.
- UV-розгортка — підготовка координат для текстур.
- Baking — перенесення деталізації з high-poly на карти (normal map, AO, curvature тощо).
- Передача в рушій — імпорт в Unity або Unreal з налаштуванням LOD-ланцюжка.
Кожен етап впливає на наступний. Погана ретопологія зламає скіннінг. Криво нарізані UV дадуть артефакти при запіканні. Етапи не можна міняти місцями.
Мобільні платформи (iOS / Android)
Мобайл — найжорсткіше середовище. Орієнтири для персонажів:
| Тип персонажа |
Полігони (тріангульовані) |
| Головний герой (великий план) |
3 000 – 8 000 |
| NPC другого плану |
1 000 – 3 000 |
| Масовка, вороги вдалині |
300 – 800 |
Для оточення (один пропс):
| Об'єкт |
Полігони |
| Великий інтерактивний (скриня, двері) |
500 – 1 500 |
| Середній декоративний |
100 – 400 |
| Дрібний (камінь, гілка) |
20 – 80 |
Критичніше самого полігонажу — кількість draw calls і батчинг. Модель на 200 трикутників з окремим матеріалом може бути дорожчою за модель на 2 000 трикутників, яка батчиться з усією сценою. Правильний батчинг (SRP Batcher, GPU instancing) знижує draw calls до 40% — це дає запас для більш деталізованих асетів.
PC / Console
Тут бюджети м'якші, але не безмежні:
- Головний персонаж у шутері від першої особи: 15 000 – 60 000 полігонів (модель противника, яку гравець бачить постійно).
- Персонаж у RPG від третьої особи: 8 000 – 25 000.
- Транспортний засіб у гонці: 30 000 – 80 000 (багато дрібних деталей, LOD обов'язковий).
Ключовий інструмент — LOD (Level of Detail). В Unity це LOD Group, в Unreal — автоматичний HLOD + ручні LOD-рівні в Static Mesh Editor. Правило: LOD0 → LOD1 має втрачати ~50-60% полігонів, LOD1 → LOD2 ще ~50%. Додатково налаштовуємо occlusion culling і кластерний рендеринг, щоб знизити навантаження на GPU.
VR
VR — окрема історія. Рендер іде для двох очей, цільовий фреймрейт 90 fps (Quest) або 120 fps (PSVR2). Будь-який фризен відчувається фізично — у гравця паморочиться голова.
Бюджет персонажа у VR: 4 000 – 12 000 (залежить від кількості NPC у сцені одночасно). Оточення агресивно оптимізується: портальна система, occluder culling, кластерний рендеринг — без цього сцена не потягне потрібний fps. Ми використовуємо Frame Debugger і Render Doc для профілювання на цільовому пристрої на ранніх етапах.
Чому ретопологія — художнє завдання?
Ретопологія — створення чистої полігональної сітки поверх sculpt-моделі. Багато хто сприймає її як нудний технічний етап, який можна прискорити авторетопологією (ZRemesher, Instant Meshes, функція Auto Retopology в Maya). Це помилка. Ручна ретопологія в 3 рази точніша за автоматичну на суглобах та обличчі.
Авторетопологія дає поганий результат у трьох ключових зонах:
- Суглоби — коліна, лікті, зап'ястя. Там потрібні рівні кільця еджлупів, перпендикулярні осі обертання. Авторетопологія ламає їх хаотичними діагоналями, і при анімації суглоб схлопується негарно.
- Обличчя — навколо рота та очей потрібні concentric loops, які слідують м'язовій структурі. Це обов'язкова умова для коректної мімічної анімації через blend shapes / morph targets.
- Силуетні ребра — плечі, груди, великі форми. Тут потрібно свідомо розподілити полігони так, щоб силует читався навіть на LOD2.
Інструментарій для ручної ретопології включає Maya (Quad Draw), Blender (BSurfaces + Shrinkwrap), 3ds Max (Graphite Modeling Tools) і ZBrush (ZRemesher з guide curves). Щільність сітки розподіляється нерівномірно: обличчя та кисті — більше полігонів, спина та низ ніг — менше. Це не свавілля, а наслідок того, де камера проводить більше часу.
Як UV-розгортка впливає на якість текстур?
UV — ще один етап, який часто недооцінюють. Тексельна щільність (texel density) повинна бути однаковою по всьому персонажу. Якщо у чобота щільність вдвічі вища, ніж у обличчя — текстура виглядатиме непослідовно. В Maya для цього є UV Toolkit з нормалізацією, в Blender — аддон TexTools.
UDIM (U-Dimension) — технологія, при якій кілька UV-тайлів об'єднуються в один об'єкт. Це дозволяє використовувати текстури 4K–8K без обмежень одного UV-простору. Застосовується для персонажів з високими вимогами до деталізації — cinematic-ігри, hero assets. В pipeline це означає Substance Painter з UDIM-режимом і окремий експорт кожного тайла.
Запікання (baking) — перенесення деталей високополігональної моделі на карти для low-poly. Інструменти:
- Marmoset Toolbag — галузевий стандарт, cage-based baking з тонким налаштуванням. Зручна візуалізація помилок. Marmoset забезпечує в 2 рази швидше запікання ніж xNormal при однаковій якості.
- xNormal — безкоштовний, перевірений часом. Менш зручний інтерфейс, але стабільний результат і батч-запікання.
- Substance Painter — вбудований baker для швидкого результату всередині текстурування, менш гнучкий, ніж Marmoset.
- Blender — Cycles baker. Повільніший і потребує налаштування, але безкоштовний.
Типовий набір запіканих карт: Normal Map, Ambient Occlusion, Curvature, Thickness, Position, World Space Normal. Curvature і Thickness — генераторні маски в Substance Painter, що автоматично виділяють опуклості та ввігнутості для процедурного текстурування. Згідно з документацією Marmoset Toolbag, batch-baking на кількох об'єктах економить до 30% часу.
Що входить у 3D-моделювання для ігор?
| Етап |
Деталі |
Формат здачі |
| High-poly sculpt |
Створення деталізованої скульптури в ZBrush / Blender |
.zpr / .blend, скріншоти |
| Ручна ретопологія |
Чиста low-poly сітка з правильними еджлупами для анімації |
.fbx / .ma |
| UV-розгортка |
Нормалізована тексельна щільність, опціонально UDIM |
.fbx з UV-set |
| Запікання |
Normal, AO, Curvature, Thickness (Marmoset / xNormal) |
texture set (PNG/TGA) |
| LOD-ланцюжок |
LOD0–LOD3 з порогами по полігонах і відстані |
.fbx для кожного LOD |
| Інтеграція |
Імпорт в Unity / Unreal, перевірка матеріалів і батчингу |
.unitypackage / .uasset |
| Документація |
Іменування асетів, ієрархія, вимоги до трикутників |
PDF / Notion |
Додатково надаємо годинну сесію підтримки після здачі — допомагаємо з налаштуванням LoD Group, колізіями та анімацією. Вихідні файли (.zpr, .blend, .ma, .fbx) передаються в повному обсязі.
Типові помилки при UV-розгортці, які ми запобігаємо:
- Різні тексельні щільності на сусідніх частинах моделі — текстура виглядає неконсистентно.
- Перекривні UV (overlap) — артефакти запікання.
- Недостатній padding між островами — розмиття текстур при міп-маппінгу.
- Відсутність UDIM для складних персонажів — втрата деталізації.
Для отримання комерційної пропозиції зв'яжіться з нами — ми оцінимо строки та підготуємо рішення під ваші вимоги: від мобільних гіперказуалок до PC-екшенів і VR. Отримайте безкоштовний аудит вашого асета просто зараз.