Налаштування PBR-матеріалів для рушіїв ігор

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

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

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

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Налаштування PBR-матеріалів для рушіїв ігор
Середня
~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

Настройка PBR-матеріалів для движків ігр

Зробити хорошу текстуру у Substance Painter — це половина завдання. Друга половина — правильно зібрати з неї матеріал у движку. Unity та Unreal Engine використовують PBR-рендеринг, але реалізують його по-різному. Текстури, які великолепно виглядають у Marmoset Toolbag або Substance Painter viewport, після імпорту в Unity виглядають інакше. Іноді незначно, іноді — кардинально.

Проблема майже завжди одна з трьох: неправильний color space, неверна упаковка каналів або рассогласування за настройками Tone Mapping між DCC-інструментом та движком.

Unity: HDRP vs URP та різниця в матеріалах

У Unity різниця між HDRP та URP — не тільки у якості рендерингу. У них повністю різні формати матеріалів.

Universal Render Pipeline (URP) використовує Lit Shader з прямолінійною упаковкою: Albedo, Normal, Metallic (R) + Smoothness (A), AO (G), Emission. Smoothness у URP — це інвертований Roughness. Якщо експортувати Roughness з Substance Painter та підключити в канал Smoothness без інверсії, матеріал буде дзеркальним там, де повинен бути матовим.

High Definition Render Pipeline (HDRP) має Mask Map з упаковкою: Metallic (R), AO (G), Detail Mask (B), Smoothness (A). Це нестандартна упаковка, яку Substance Painter не створює автоматично в базових шаблонах. Потрібно або використовувати HDRP-шаблон у Substance Painter при створенні проекту, або вручну компонувати Mask Map через Photoshop або командний рядок magick (ImageMagick). Помилка при упаковці каналів — один з найбільш частих багів при переносі assets з іншого движка.

Color Space — окремий критичний момент. У Unity Albedo імпортується як sRGB (це правильно — колір у sRGB), Normal Map — як Linear (обов'язково зняти флаг sRGB у Import Settings, інакше нормалі будуть неправильними та поверхня виглядає плоскою), Roughness, Metallic, AO — як Linear (вони зберігають лінійні дані, не колір). Ігнорування цих настроєнь — джерело половини проблем «чому у нас все виглядає інакше, ніж у референсі».

Unreal Engine 5: нюанси матеріальної системи

У Unreal Material Graph текстури підключаються до відповідних входів Principled BSDF-аналога. Але є кілька нюансів:

Packed ORM текстура. У Unreal Engine стандарт — упаковка AO (R), Roughness (G), Metallic (B) в одну текстуру з флагом Linear Color. Це знижує кількість текстурних семплів у шейдері з трьох до одного. Правильний Export Preset для Unreal у Substance Painter — Unreal Engine 4 (Packed), який створює цю текстуру автоматично.

Normal Map координати. Unreal використовує DirectX-простір нормалей: зелений канал (Y) інвертований відносно OpenGL. При імпорті нормалей з Substance Painter в Unreal Engine потрібно або використовувати DirectX флаг при експорті з Substance, або включити опцію Flip Green Channel у Import Settings Unreal. Симптом помилки — неверне напрямок тіней від Normal Map, поверхня виглядає «вивернутою».

Texture Compression. Unreal по умолчанню сжимає текстури у BC7 (DirectX) або ETC2 (мобайл). Albedo — Default (BC7), Normal Map — Normal Map (BC5) — це формат двохканального сжатия, який зберігає тільки X та Y канали нормалі, Z відновлюється в шейдері. Якщо поставити Normal Map з форматом Default — сжатие сломає нормалі. Metallic, Roughness, AO — Masks (BC4/BC7 без sRGB).

Material Instances — обов'язкова практика для production. Замість дублювання Material Graph для кожного варіанту матеріалу — один Master Material з параметрами, до якого створюються Material Instances. Це знижує кількість унікальних шейдерів (та час компіляції при старті гри), дозволяє менювати параметри без пересборки шейдера.

Інтеграція Substance Painter з движками

Обидві платформи підтримують прямий експорт з Substance Painter через Export Presets:

  • Unity HDRP — створює Mask Map з правильною упаковкою
  • Unity URP — створює стандартний набір для Lit Shader
  • Unreal Engine 4/5 — створює ORM packed texture

Але presets не завжди враховують кастомні настройки проекту. На практиці використовується Export Config з явним вказанням channels та їх mapping на канали вихідної текстури. Це JSON-файл, який можна версіонувати в git разом з проектом та використовувати у всій команді.

Прямий Live Link між Substance Painter та Unreal Engine через Bridge — зручний у розробці, але в production pipeline імпорт через Assets folder з явними Import Settings переважніший: він відтворюваний та не залежить від стану робочої станції конкретного художника.

Перевірка матеріалу у движку

Фінальна перевірка зібраного матеріалу — не «виглядає красиво». Це технічний чеклист:

  • Albedo у корректному діапазоні (30–240 у sRGB) — перевірити через Color Grading / Histogram у движку
  • Normal Map не інвертована за Z — перевірити на тестовій геометрії з бічним світлом
  • Roughness працює коректно — тест на сфері з HDRI-освітленням: дзеркало при roughness=0, повністю матовий при roughness=1
  • AO не створює подвійного затінення — убрати всі тіні зі сцени, перевірити тільки AO pass
  • Metallic бінарний — немає градієнтів там, де їх не повинно бути
Масштаб завдання Орієнтовний термін
Настройка матеріалу (1–3 assets) 0.5–1 день
Перенос набору assets з іншого движка (до 20 матеріалів) 2–4 дні
Створення Master Material + набір Instances (10–30 варіантів) 3–7 днів
Аудит та виправлення матеріалів існуючого проекту за угодою

Вартість розраховується після аналізу: кількість матеріалів, цільовий движок, рендер-пайплайн.