Objetos virtuales realistas en una escena

La API de Lighting Estimation proporciona datos detallados que te permiten imitar varias indicaciones de iluminación cuando renderizas objetos virtuales. ARCore admite tres modos de estimación de luz:

  1. Inhabilitado
  2. Modo Intensidad ambiental
  3. Modo HDR ambiental

Requisitos previos

Asegúrate de comprender los conceptos fundamentales de la RA y cómo configurar una sesión de ARCore antes de continuar.

Cómo habilitar la estimación de iluminación

Sigue estos pasos para habilitar la estimación de iluminación en tu app.

  1. Configura un proyecto de AR Foundation o un proyecto de extensiones de ARCore.
  2. En la pestaña Hierarchy, navega a XR Session Origin > AR Camera.

  1. En el componente AR Camera Manager, selecciona Light Estimation.
  2. En el menú desplegable Light Estimation, selecciona los modos que deseas usar.

Cómo habilitar el modo HDR ambiental

El modo HDR ambiental habilita la siguiente configuración de estimación de luz:

Este modo se habilita automáticamente cuando se cumplen los siguientes criterios:

Cómo habilitar el modo Intensidad ambiente

La estimación de luz básica se habilita automáticamente cuando se selecciona el modo de intensidad ambiental en el componente ARCameraManager.

El modo Intensidad ambiente habilita la siguiente configuración de estimación de luz:

  • Color ambiente
  • Intensidad ambiental

Usa información de iluminación en tu escena

Una vez que hayas obtenido la configuración de iluminación correcta, podrás iluminar los objetos virtuales de tu escena como si fueran parte del mundo real.

El componente ARCameraManager puede generar un evento frameReceived que estima las condiciones de iluminación de los fotogramas cuando la estimación de iluminación está habilitada. La información de los eventos frameReceived se almacena en estructuras ARCameraFrameEventArgs como ARLightEstimationData.

Sigue estos pasos para cambiar los parámetros de una luz durante el tiempo de ejecución.

  1. Crea o modifica la luz direccional existente en la escena.
  2. Adjunta una secuencia de comandos nueva a la luz direccional.

    // 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. Modifica esta nueva secuencia de comandos para detectar cambios en la iluminación. Para ver ejemplos de cómo hacerlo, consulta las secuencias de comandos BasicLightEstimation.cs y HDRLightEstimation.cs de Unity.

Usa sondas de entorno en tu escena

Sigue estos pasos para habilitar las sondas de entorno en tu escena.

  1. Habilita la ubicación automática en el ARSessionOrigin de tu escena.
  2. Agrega un componente AREnvironmentProbeManager a ARSessionOrigin.