Реалистичное освещение виртуальных объектов в сцене.

API оценки освещения предоставляет подробные данные, которые позволяют имитировать различные сигналы освещения при рендеринге виртуальных объектов. ARCore поддерживает три режима оценки освещенности:

  1. Неполноценный
  2. Режим внешней интенсивности
  3. Экологический режим HDR

Предварительные условия

Прежде чем продолжить, убедитесь, что вы понимаете фундаментальные концепции AR и то, как настроить сеанс ARCore .

Включить оценку освещения

Выполните следующие действия, чтобы включить оценку освещения в вашем приложении.

  1. Настройте проект AR Foundation или проект ARCore Extensions .
  2. На вкладке Hierarchy перейдите к XR Session Origin > AR Camera .

  1. В компоненте AR Camera Manager выберите Light Estimation .
  2. В раскрывающемся меню Light Estimation выберите режимы, которые вы хотите использовать.

Включить режим HDR окружающей среды

Режим Environmental HDR позволяет использовать следующие настройки оценки освещенности:

Этот режим включается автоматически при выполнении следующих критериев:

Включить режим Ambient Intensity

Базовая оценка освещенности включается автоматически, когда в компоненте ARCameraManager выбран режим Ambient Intensity .

Режим Ambient Intensity включает следующие настройки оценки освещенности:

  • Окружающий цвет
  • Окружающая интенсивность

Используйте информацию об освещении в вашей сцене

После того, как вы получили правильные настройки освещения, вы можете освещать виртуальные объекты в вашей сцене, как если бы они были частью реального мира.

Компонент ARCameraManager может вызвать frameReceived , которое оценивает условия освещения кадров, когда оценка освещения включена. Информация из frameReceived хранится в структурах ARCameraFrameEventArgs как ARLightEstimationData .

Выполните следующие действия, чтобы изменить параметры источника света во время выполнения.

  1. Создайте или измените существующий направленный свет в вашей сцене.
  2. Прикрепите новый скрипт к Направленному источнику света.

    // 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.
    }
    
  3. Измените этот новый скрипт, чтобы он обнаруживал изменения в освещении. Примеры того, как это сделать, можно найти в сценариях Unity BasicLightEstimation.cs и HDRLightEstimation.cs .

Используйте зонды окружающей среды в своей сцене

Выполните следующие действия, чтобы включить зонды среды в вашей сцене.

  1. Включите автоматическое размещение в ARSessionOrigin вашей сцены.
  2. Добавьте компонент AREnvironmentProbeManager в ARSessionOrigin .