La profondità aggiunge realismo

Guide specifiche per la piattaforma

In qualità di sviluppatore di app AR, vuoi fondere perfettamente il virtuale con il reale per i tuoi utenti. Quando un utente inserisce un oggetto virtuale nella scena, vuole che sembri appartenere al mondo reale. Se stai creando un'app per consentire agli utenti di acquistare mobili, devi assicurarti che abbiano la certezza che la poltrona che stanno per acquistare entrerà nella loro casa.

L'API Depth aiuta la fotocamera di un dispositivo a comprendere le dimensioni e la forma degli oggetti reali in una scena. Crea immagini di profondità o mappe di profondità, aggiungendo così un livello di realismo alle tue app. Puoi usare le informazioni fornite da un'immagine di profondità per offrire esperienze utente immersive e realistiche.

Casi d'uso per lo sviluppo con l'API Depth

L'API Depth può supportare l'occlusione degli oggetti, un'immersione migliorata e nuove interazioni che aumentano il realismo delle esperienze AR. Di seguito sono riportati alcuni modi in cui puoi utilizzarlo nei tuoi progetti. Per esempi di profondità in azione, esplora le scene di esempio nel ARCore Depth Lab, che illustra diversi modi per accedere ai dati di profondità. Questa app Unity è open source su GitHub.

Attiva l'occlusione

L'occlusione, ovvero il rendering accurato di un oggetto virtuale dietro oggetti reali, è fondamentale per un'esperienza AR immersiva. Prendi in considerazione un Andy virtuale che un utente potrebbe voler posizionare in una scena contenente un bagagliaio accanto a una porta. Se viene visualizzato senza occlusione, Andy si sovrappone in modo non realistico al bordo del bagagliaio. Se utilizzi la profondità di una scena e capisci quanto è distante Andy virtuale rispetto all'ambiente circostante, come il tronco di legno, puoi eseguire il rendering di Andy con occlusione in modo preciso, facendolo apparire molto più realistico nell'ambiente circostante.

Trasformare una scena

Mostra ai tuoi utenti un mondo nuovo e immersivo simulando fiocchi di neve virtuali sulle braccia e sui cuscini del divano o creando il salotto nella nebbia nebbiosa. Puoi utilizzare la funzionalità Profondità per creare una scena in cui le luci virtuali interagiscono, si nascondono dietro e riaccendono oggetti reali.

Distanza e profondità di campo

Devi mostrare che qualcosa è lontano? Con l'API Depth puoi utilizzare la misurazione della distanza e aggiungere effetti di profondità di campo, ad esempio sfocare lo sfondo o il primo piano di una scena.

Consentire le interazioni degli utenti con gli oggetti AR

Consenti agli utenti di "toccare" il mondo attraverso la tua app consentendo ai contenuti virtuali di interagire con il mondo reale attraverso scontri e leggi fisiche. Far passare oggetti virtuali sopra ostacoli reali o far colpire e schizzare palline da paintball virtuali su un albero reale. Se combini la collisione basata sulla profondità con la fisica del gioco, puoi dare vita a un'esperienza.

Migliorare gli hit test

La profondità può essere utilizzata per migliorare i risultati degli hit test. I test di hit dei piani funzionano solo su superfici piane con texture, mentre i test di hit della profondità sono più dettagliati e funzionano anche su aree non piane e con bassa texture. Questo perché gli hit test di profondità utilizzano informazioni sulla profondità della scena per determinare la profondità e l'orientamento corretti di un punto.

Nell'esempio seguente, gli Andy verdi rappresentano i test di hit di piano standard e gli Andy rossi rappresentano i test di hit di profondità.

Compatibilità dei dispositivi

L'API Depth è supportata solo sui dispositivi che dispongono della potenza di elaborazione per supportare la profondità e deve essere abilitata manualmente in ARCore, come descritto in Abilitare la profondità.

Alcuni dispositivi potrebbero anche fornire un sensore di profondità hardware, ad esempio un sensore di tempo di volo (ToF). Consulta la pagina Dispositivi ARCore supportati per un elenco aggiornato dei dispositivi che supportano l'API Depth e un elenco dei dispositivi che dispongono di un sensore di profondità hardware supportato, ad esempio un sensore ToF.

Immagini con profondità

L'API Depth utilizza un algoritmo di profondità dal movimento per creare immagini di profondità, che offrono una visione 3D del mondo. Ogni pixel di un'immagine in 3D è associato a una misura della distanza della scena dalla fotocamera. Questo algoritmo acquisisce più immagini del dispositivo da angolazioni diverse e le confronta per stimare la distanza da ogni pixel mentre l'utente muove lo smartphone. Utilizza in modo selettivo il machine learning per aumentare l'elaborazione della profondità, anche con movimenti minimi da parte dell'utente. Sfrutta inoltre qualsiasi hardware aggiuntivo di cui potrebbe essere dotato il dispositivo di un utente. Se il dispositivo è dotato di un sensore di profondità dedicato, come ToF, l'algoritmo unisce automaticamente i dati di tutte le origini disponibili. Questa opzione migliora l'immagine di profondità esistente e consente la profondità anche quando la fotocamera non è in movimento. Offre inoltre una maggiore profondità su superfici con poche o nessuna funzionalità, come pareti bianche, o in scene dinamiche con persone o oggetti in movimento.

Le seguenti immagini mostrano l'immagine di una fotocamera di un corridoio con una bicicletta sul muro e una visualizzazione dell'immagine di profondità creata dalle immagini della fotocamera. Le aree in rosso sono più vicine alla fotocamera, mentre quelle in blu sono più lontane.

Profondità dal movimento

I dati di profondità diventano disponibili quando l'utente sposta il dispositivo. L'algoritmo può ottenere stime di profondità affidabili e accurate da 0 a 65 metri di distanza. I risultati più accurati si ottengono quando il dispositivo si trova a una distanza compresa tra mezzo metro e circa cinque metri dalla scena reale. Le esperienze che incoraggiano l'utente a spostare di più il dispositivo avranno risultati sempre migliori.

Acquisisci immagini in 3D

Con l'API Depth, puoi recuperare immagini di profondità corrispondenti a ogni fotogramma della fotocamera. Un'immagine di profondità acquisita ha lo stesso timestamp e gli stessi valori inerenti del campo visivo della fotocamera. I dati di profondità validi sono disponibili solo dopo che l'utente ha iniziato a spostare il dispositivo, poiché la profondità viene acquisita dal movimento. Le superfici con poche o nessuna funzionalità, come le pareti bianche, verranno associate a una profondità imprecisa.

Passaggi successivi

  • Dai un'occhiata ad ARCore Depth Lab, che mostra diversi modi per accedere ai dati di profondità.