Guide specifiche per la piattaforma
Android (Kotlin/Java)
Android NDK (C)
Unity (Elementi di base AR)
Motore irreale
Regolare l'illuminazione è fondamentale per creare esperienze AR realistiche. Quando in un oggetto virtuale manca un'ombra o presenta un materiale lucido che non riflette lo spazio circostante, gli utenti possono percepire che l'oggetto non si adatta del tutto, anche se non sono in grado di spiegarne il motivo. Questo perché gli esseri umani percepiscono inconsciamente segnali relativi a come gli oggetti vengono illuminati nel loro ambiente. L'API Lighting Estimation analizza le immagini date alla ricerca di questi segnali, fornendo informazioni dettagliate sull'illuminazione di una scena. Puoi quindi utilizzare queste informazioni quando esegui il rendering di oggetti virtuali per illuminarli nelle stesse condizioni della scena in cui si trovano, mantenendo gli utenti concentrati e coinvolti.
Segnali luminosi
L'API Lighting Estimation fornisce dati dettagliati che ti consentono di imitare vari indicatori di illuminazione durante il rendering di oggetti virtuali. Questi segnali sono ombre, luce ambientale, ombreggiatura, alte luci speculari e riflessi.
Ombre
Le ombre sono spesso direzionali e indicano agli spettatori da dove provengono le sorgenti luminose.
Luce ambientale
La luce ambientale è la luce diffusa complessiva che proviene dall'ambiente circostante, rendendo tutto visibile.
Ombreggiatura
L'ombreggiatura indica l'intensità della luce. Ad esempio, diverse parti dello stesso oggetto possono avere diversi livelli di ombreggiatura nella stessa scena, a seconda dell'angolazione rispetto allo spettatore e della vicinanza a una fonte di luce.
Alte luci speculari
Le evidenziazioni speculari sono le parti lucide delle superfici che riflettono direttamente una sorgente di luce. Le alte luci di un oggetto cambiano in base alla posizione di uno spettatore in una scena.
Stati d'animo
La luce rimbalza sulle superfici in modo diverso a seconda che la superficie abbia proprietà speculari (altamente riflettenti) o diffuse (non riflettenti). Ad esempio, una sfera metallica sarà altamente speculare e rifletterà l'ambiente circostante, mentre un'altra sfera dipinta di grigio opaco opaco sarà diffusa. La maggior parte degli oggetti del mondo reale ha una combinazione di queste proprietà, ad esempio una palla da bowling rovinata o una carta di credito ben usata.
Le superfici riflettenti acquisiscono anche i colori dell'ambiente circostante. La colorazione di un oggetto può essere direttamente influenzata dalla colorazione dell'ambiente circostante. Ad esempio, una palla bianca in una stanza blu assume una tonalità bluastra.
Modalità HDR ambientale
Queste modalità sono costituite da API separate che consentono una stima granulare e realistica dell'illuminazione per luce direzionale, ombre, alte luci speculari e riflessi.
La modalità Environmental HDR utilizza il machine learning per analizzare le immagini della videocamera in tempo reale e sintetizzare l'illuminazione ambientale per supportare un rendering realistico degli oggetti virtuali.
Questa modalità di stima dell'illuminazione fornisce:
Luce direzionale principale. Rappresenta la fonte di luce principale. Può essere utilizzato per proiettare ombre.
Armoniche sferiche ambientali. Rappresenta l'energia della luce ambientale rimanente nella scena.
Una mappa cubica HDR. Può essere utilizzato per visualizzare i riflessi di oggetti metallici lucidi.
Puoi utilizzare queste API in diverse combinazioni, ma sono progettate per essere utilizzate insieme in modo da ottenere l'effetto più realistico.
Luce direzionale principale
L'API della luce direzionale principale calcola la direzione e l'intensità della fonte di luce principale della scena. Queste informazioni consentono agli oggetti virtuali nella scena di mostrare alte luci speculari ragionevolmente posizionate e di proiettare ombre in una direzione coerente con altri oggetti reali visibili.
Per vedere come funziona, considera queste due immagini dello stesso razzo virtuale. Nell'immagine a sinistra, c'è un'ombra sotto il razzo, ma la sua direzione non corrisponde a quella delle altre ombre presenti nella scena. Nel razzo a destra, l'ombra punta nella direzione corretta. Si tratta di una differenza sottile ma importante che pone il razzo sulla scena perché la direzione e l'intensità dell'ombra corrispondono meglio alle altre ombre della scena.
Quando la sorgente luminosa principale o un oggetto illuminato è in movimento, l'evidenziazione speculare sull'oggetto ne regola la posizione in tempo reale rispetto alla sorgente luminosa.
Le ombre direzionali regolano anche la loro lunghezza e direzione rispetto alla posizione della sorgente luminosa principale, proprio come nel mondo reale. Per illustrare questo effetto, considera questi due manichini, uno virtuale e l'altro reale. Il manichino a sinistra è quello virtuale.
Armoniche sferiche ambientali
Oltre all'energia della luce della luce direzionale principale, ARCore fornisce armoniche sferiche, che rappresentano la luce ambientale complessiva che proviene da tutte le direzioni della scena. Utilizza queste informazioni durante il rendering per aggiungere indizi sottili che mettano in risalto la definizione degli oggetti virtuali.
Considera queste due immagini dello stesso modello di razzo. Il razzo a sinistra viene visualizzato utilizzando le informazioni sulla stima dell'illuminazione rilevate dall'API direzionale principale della luce. Il razzo a destra viene visualizzato utilizzando le informazioni rilevate dalle API di direzione principale della luce e delle armoniche sferiche ambientali. Il secondo razzo ha chiaramente una definizione più visiva e si fonde in modo più fluido con la scena.
Mappa cubica HDR
Utilizza la mappa cubica HDR per visualizzare riflessi realistici su oggetti virtuali con una brillantezza da media ad elevata, come superfici metalliche lucide. La mappa cubica influisce anche sull'ombreggiatura e sull'aspetto degli oggetti. Ad esempio, il materiale di un oggetto speculare circondato da un ambiente blu rifletterà le tonalità blu. Il calcolo della mappa cubica HDR richiede una piccola quantità di calcolo aggiuntivo della CPU.
La necessità di utilizzare la mappa cubica HDR dipende da come un oggetto riflette l'ambiente circostante. Poiché il razzo virtuale è metallico, ha una forte componente speculare che riflette direttamente l'ambiente circostante. Di conseguenza trae vantaggio dalla "cubemap". Al contrario, un oggetto virtuale con un materiale grigio opaco opaco non ha un componente speculare. Il suo colore dipende principalmente dalla componente Diffuso e non trarrebbe vantaggio da una mappa cubica.
Per il rendering del razzo sottostante sono state utilizzate tutte e tre le API Environmental HDR. La mappa cubica HDR offre segnali riflettenti e mette in evidenza ulteriormente che l'oggetto viene posizionato completamente sulla scena.
Ecco lo stesso modello di razzo in ambienti con illuminazioni diverse. Tutte queste scene sono state visualizzate utilizzando le informazioni delle tre API, con ombre direzionali applicate.
Modalità intensità ambientale
La modalità di intensità ambientale determina l'intensità dei pixel media e gli scalari di correzione del colore per una determinata immagine. Si tratta di un'impostazione approssimativa, progettata per i casi d'uso in cui un'illuminazione precisa non è fondamentale, come nel caso di oggetti con un'illuminazione integrata.
Intensità pixel
Acquisisce l'intensità dei pixel media dell'illuminazione di una scena. Puoi applicare questa illuminazione a un intero oggetto virtuale.
Colore
Rileva il bilanciamento del bianco per ogni singolo fotogramma. Puoi quindi correggere il colore di un oggetto virtuale in modo che si integri più facilmente nella colorazione generale della scena.
Probe di ambiente
Le sonde ambientali organizzano le visualizzazioni delle videocamere a 360 gradi in texture ambientali come le mappe cubiche. Queste texture possono quindi essere utilizzate per illuminare in modo realistico oggetti virtuali, come una sfera di metallo virtuale che "riflette" la stanza in cui si trova.