Розроблення PBR-матеріалів для реалістичної графіки в AR
В AR об'єкт повинен існувати у реальному світі. Не просто накладатися на зображення камери – саме існувати: відбивати то ж саме освітлення, що й реальні об'єкти поруч, мати правдоподібні тіні, реагувати на зміну навколишнього світла при переміщенні користувача.
Це робить PBR-пайплайн в AR принципово іншою завдання порівняно з VR або звичайними іграми.
Чому PBR в AR не працює "з коробки"
У VR або звичайній грі освітлення контролює команда. Художник знає, звідки світло, який його колір та інтенсивність. Під це настроюються матеріали.
В AR освітлення – реальний світ. ARKit (iOS) та ARCore (Android) дають Environment Probe та Light Estimation – дані про колірну температуру, інтенсивність та приблизний напрямок основного джерела. Але це оцінки, не точні дані. Точність Light Estimation ARCore достатня, щоб об'єкт не виділявся як інородний, але недостатня для фотореалістичного матчингу.
Завдання PBR-матеріалів в AR – створити фізично коректну базу, яка добре працює у широкому діапазоні умов освітлення: від яскравого денного через приглушений офісний до вечірнього indoor. Матеріал, откалібрований тільки під конкретні умови, буде виглядати неправильно при зміні обстановки.
Metallic vs. Specular workflow. В AR Foundation через URP стандарт – Metallic workflow. Але metallic поверхні критичні до якості Environment Probe: висока металічність при бідному або неточному Reflection Probe дає плоский сірий highlight, що руйнує реалізм. Для AR краще обмежувати metallic значеннями 0.7–0.85 для "металічних" поверхонь замість одиниці й компенсувати roughness.
Налаштування матеріалів для AR Foundation + URP
Reflection Probes в AR працюють інакше: статичний cubemap не відповідає реальному оточенню. Правильний підхід – використовувати AREnvironmentProbeManager з AR Foundation, який автоматично генерує cubemap із камери та оновлює Reflection Probe у сцені. Це потребує правильного налаштування в Unity: AREnvironmentProbeManager додається на AR Session Origin, Automatic Placement включена, Environment Texture Filter Mode – Trilinear для плавної інтерполяції.
Occlusion. Щоб AR-об'єкт коректно переховувався за реальними об'єктами – меблями, руками користувача – потрібен Depth Occlusion через AROcclusionManager. Це впливає на матеріали: об'єкти із прозорими або cutout матеріалами потребують окремої обробки в шейдері, інакше occlusion маска застосовується неправильно.
Конфігурація PBR-параметрів для AR:
- Albedo: нейтральні тони без додаткових темних або світлих bias. AR-движок сам корректує експозицію – вихідник має бути нейтральним.
- Roughness: 0.3–0.6 для більшості матеріалів. Занадто гладкі поверхні (roughness < 0.2) видають неточність Reflection Probe.
- Normal Map: помірна інтенсивність. В AR глибина нормалей при неправильному освітленні легко перетворюється в артефакт.
- Emission: використовується для self-illuminated елементів, які не залежать від зовнішнього освітлення (екрани, LED-індикатори). В AR emission часто допомагає "заземлити" об'єкт візуально.
Практика: матеріал під мобільний AR на Android
На Android через ARCore Light Estimation API доступна сферична гармоніка другого порядку для навколишнього освітлення. В Unity AR Foundation це приходить через ARLightEstimationData.mainLightDirection та ambientSphericalHarmonics. Кастомний URP ShaderGraph може приймати ці дані напряму й застосовувати до матеріалу, даючи більш точний ambient порівняно зі стандартним URP Lit.
Для iOS ARKit надає Environment Texture (HDR cubemap) з оновленням кожні кілька кадрів – якість вища, latency присутня. Матеріали для iOS-проектів можна настроювати агресивніше по specular.
Фінальне тестування PBR-матеріалів для AR обов'язково проводиться на фізичному пристрої у різних умовах освітлення: яскравий сонячний день, штучне світло, півтінь. Емулятор ніколи не замінює це.
Терміни розроблення PBR-матеріалу: від 2–4 годин для простого prop до 2–3 днів для складного ассету з кількома material zones та кастомним шейдером. Вартість розраховується індивідуально.





