API оценки освещения предоставляет подробные данные, которые позволяют имитировать различные сигналы освещения при рендеринге виртуальных объектов. ARCore поддерживает три режима оценки освещенности:
- Неполноценный
- Режим внешней интенсивности
- Экологический режим HDR
Предварительные условия
Прежде чем продолжить, убедитесь, что вы понимаете фундаментальные концепции AR и то, как настроить сеанс ARCore .
Включить оценку освещения
Выполните следующие действия, чтобы включить оценку освещения в вашем приложении.
- Настройте проект AR Foundation или проект ARCore Extensions .
- На вкладке Hierarchy перейдите к XR Session Origin > AR Camera .
- В компоненте AR Camera Manager выберите Light Estimation .
- В раскрывающемся меню Light Estimation выберите режимы, которые вы хотите использовать.
Включить режим HDR окружающей среды
Режим Environmental HDR позволяет использовать следующие настройки оценки освещенности:
- Основное направление света
- Основная интенсивность света
- Окружающие сферические гармоники
Этот режим включается автоматически при выполнении следующих критериев:
- Сферические гармоники окружающей среды, направление основного света и/или интенсивность основного света выбираются в режиме оценки освещения, предоставляемом менеджером камеры AR.
- Зонды среды включены в
AREnvironmentProbeManager
- Выбрана совместимая конфигурация камеры.
Включить режим Ambient Intensity
Базовая оценка освещенности включается автоматически, когда в компоненте ARCameraManager
выбран режим Ambient Intensity .
Режим Ambient Intensity включает следующие настройки оценки освещенности:
- Окружающий цвет
- Окружающая интенсивность
Используйте информацию об освещении в вашей сцене
После того, как вы получили правильные настройки освещения, вы можете освещать виртуальные объекты в вашей сцене, как если бы они были частью реального мира.
Компонент ARCameraManager
может вызвать frameReceived
, которое оценивает условия освещения кадров, когда оценка освещения включена. Информация из frameReceived
хранится в структурах ARCameraFrameEventArgs
как ARLightEstimationData
.
Выполните следующие действия, чтобы изменить параметры источника света во время выполнения.
- Создайте или измените существующий направленный свет в вашей сцене.
Прикрепите новый скрипт к Направленному источнику света.
// Sample Lighting Estimation script Light light; void Awake () { light = GetComponent<Light>(); } void OnEnable() { if (cameraManager != null) cameraManager.frameReceived += FrameChanged; } void OnDisable() { if (cameraManager != null) cameraManager.frameReceived -= FrameChanged; } void FrameChanged(ARCameraFrameEventArgs args) { // Modify `light` parameters using ARCameraFrameEventArgs. }
Измените этот новый скрипт, чтобы он обнаруживал изменения в освещении. Примеры того, как это сделать, можно найти в сценариях Unity
BasicLightEstimation.cs
иHDRLightEstimation.cs
.
Используйте зонды окружающей среды в своей сцене
Выполните следующие действия, чтобы включить зонды среды в вашей сцене.
- Включите автоматическое размещение в
ARSessionOrigin
вашей сцены. - Добавьте компонент
AREnvironmentProbeManager
вARSessionOrigin
.