Разработка 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 и кастомным шейдером. Стоимость рассчитывается индивидуально.





