L'API Lighting Estimation fornisce dati dettagliati che ti consentono di simulare vari indicatori di illuminazione durante il rendering di oggetti virtuali. ARCore supporta tre modalità di stima della luce:
- Disabilitato
- Modalità Intensità ambientale
- Modalità HDR ambientale
Prerequisiti
Prima di procedere, assicurati di conoscere i concetti fondamentali dell'AR e come configurare una sessione ARCore.
Attivare la stima dell'illuminazione
Segui questi passaggi per attivare la stima dell'illuminazione nella tua app.
- Configura un progetto AR Foundation o un progetto ARCore Extensions.
- Nella scheda Hierarchy, vai a XR Session Origin > AR Camera.
- Sotto il componente AR Camera Manager, seleziona Light Estimation.
- Nel menu a discesa Light Estimation, seleziona le modalità che vuoi utilizzare.
Attivare la modalità HDR ambientale
La modalità HDR ambientale attiva le seguenti impostazioni di stima della luce:
- Direzione della luce principale
- Intensità luce principale
- Armoniche sferiche ambientali
Questa modalità viene attivata automaticamente quando vengono soddisfatti i seguenti criteri:
- Le armoniche sferiche ambientali, la direzione della luce principale e/o l'intensità della luce principale sono selezionate nella modalità di stima della luce fornita da Gestione fotocamera AR
- Le sonde dell'ambiente sono abilitate in un
AREnvironmentProbeManager
- È stata selezionata una configurazione della videocamera compatibile
Attivare la modalità Intensità ambient
La stima della luce di base viene attivata automaticamente quando nel componente ARCameraManager
è selezionata la modalità Intensità ambiente.
La modalità Intensità ambiente attiva le seguenti impostazioni di stima della luce:
- Colori ambient
- Intensità ambientale
Utilizzare le informazioni sull'illuminazione nella scena
Dopo aver ottenuto le impostazioni di illuminazione corrette, puoi illuminare gli oggetti virtuali nella scena come se facessero parte del 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 degli eventi frameReceived
vengono archiviate nelle strutture ARCameraFrameEventArgs
come ARLightEstimationData
.
Per modificare i parametri di una luce in fase di esecuzione:
- Crea o modifica la Luce direzionale esistente nella scena.
Collega 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. }
Modifica questo nuovo script per rilevare le variazioni di illuminazione. Per esempi su come eseguire questa operazione, dai un'occhiata agli script
BasicLightEstimation.cs
eHDRLightEstimation.cs
di Unity.
Utilizzare le sonde ambientali nella scena
Per attivare le sonde ambientali nella scena, segui questi passaggi.
- Attiva il posizionamento automatico nella sezione
ARSessionOrigin
della scena. - Aggiungi un componente
AREnvironmentProbeManager
aARSessionOrigin
.