Illumina realisticamente gli oggetti virtuali in una scena

L'API Lighting Estimation fornisce dati dettagliati che ti consentono di simulare vari segnali di illuminazione durante il rendering di oggetti virtuali. ARCore supporta tre modalità di stima della luce:

  1. Disabilitato
  2. Modalità Ambient Intensity
  3. Modalità HDR ambientale

Prerequisiti

Assicurati di comprendere i concetti fondamentali della realtà aumentata e su come configurare una sessione ARCore prima di procedere.

Attiva la stima dell'illuminazione

Segui questi passaggi per attivare la stima dell'illuminazione nella tua app.

  1. Configura un progetto di base AR o un progetto ARCore Extensions.
  2. Nella scheda Hierarchy, vai a XR Session Origin > AR Camera.

  1. Sotto il componente AR Camera Manager, seleziona Light Estimation.
  2. Nel menu a discesa Light Estimation, seleziona le modalità che vuoi utilizzare.

Attiva la modalità HDR ambientale

La modalità HDR ambientale attiva le seguenti impostazioni di stima della luce:

Questa modalità viene attivata automaticamente quando vengono soddisfatti i seguenti criteri:

Attiva la modalità Intensità ambientale

La stima della luce di base viene attivata automaticamente quando è selezionata la modalità Intensità ambientale nel componente ARCameraManager.

La modalità Intensità ambientale abilita le seguenti impostazioni per la stima della luce:

  • Colori ambient
  • Intensità ambientale

Utilizzare le informazioni sull'illuminazione nella scena

Una volta stabilite le impostazioni di illuminazione corrette, puoi illuminare gli oggetti virtuali presenti nella scena come se appartenessero al mondo reale.

Il componente ARCameraManager può generare un evento frameReceived che stima le condizioni di illuminazione dei fotogrammi quando la stima dell'illuminazione è abilitata. Le informazioni provenienti dagli eventi frameReceived vengono archiviate in struct ARCameraFrameEventArgs come ARLightEstimationData.

Segui questi passaggi per modificare i parametri di una lampadina durante l'orario di esecuzione.

  1. Crea o modifica la luce direzionale esistente nella scena.
  2. Allega un nuovo script alla luce direzionale.

    // 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 questo nuovo script per rilevare i cambiamenti dell'illuminazione. Per esempi su come eseguire questa operazione, dai un'occhiata agli script BasicLightEstimation.cs e HDRLightEstimation.cs di Unity.

Usa probe di ambiente nella scena

Segui questi passaggi per abilitare i probe di ambiente nella scena.

  1. Attiva il posizionamento automatico nella sezione ARSessionOrigin della scena.
  2. Aggiungi un componente AREnvironmentProbeManager a ARSessionOrigin.