La profondità aggiunge realismo

Guide specifiche per piattaforma

In qualità di sviluppatore di app AR, vuoi fondere perfettamente il virtuale con il reale per i tuoi utenti. Quando un utente posiziona un oggetto virtuale nella scena, vuole che sembri parte del mondo reale. Se stai creando un'app per consentire agli utenti di acquistare mobili, vuoi che siano sicuri che la poltrona che stanno per acquistare si adatti al loro spazio.

L'API Profondità 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 utilizzare le informazioni fornite da un'immagine di profondità per offrire esperienze utente coinvolgenti e realistiche.

Casi d'uso per lo sviluppo con l'API Profondità

L'API depth può potenziare la copertura degli oggetti, migliorare l'immersione e le nuove interazioni che migliorano 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 Profondità Lab, che illustra diversi modi per accedere ai dati sulla profondità. Questa app Unity è open source su GitHub.

Attiva occlusione

L'occlusione, ovvero il rendering accurato di un oggetto virtuale dietro a oggetti reali, è fondamentale per un'esperienza AR immersiva. Prendi in considerazione un Andy virtuale che l'utente potrebbe voler inserire in una scena contenente un bagagliaio accanto a una porta. Rendering senza occlusione, Andy si sovrapporrà in modo non realistico al bordo del tronco. Se sfrutti la profondità di una scena e capisci quanto è lontano Andy virtuale rispetto all'ambiente circostante come il tronco di legno, puoi eseguire un rendering accurato dell'Andy con l'occlusione, rendendolo molto più realistico nell'ambiente circostante.

Trasformare una scena

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

Distanza e profondità di campo

Devi dimostrare che c'è qualcosa che non c'è? Puoi utilizzare la misurazione della distanza e aggiungere effetti di profondità di campo, come la sfocatura dello sfondo o del primo piano di una scena, con l'API Profondità di campo.

Abilita le interazioni degli utenti con gli oggetti AR

Consenti agli utenti di "toccare" il mondo tramite la tua app consentendo ai contenuti virtuali di interagire con il mondo reale attraverso collisioni e fisica. Crea oggetti virtuali che superano ostacoli reali o fai colpire e schiacciare paintball virtuali su un albero del mondo reale. Combinando gli scontri basati sulla profondità con la fisica del gioco, puoi dare vita a un'esperienza.

Migliora gli hit test

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

Nell'esempio seguente, le Andy verdi rappresentano gli hit-test di livello standard, mentre quelli rossi rappresentano gli hit-test di profondità.

Compatibilità dei dispositivi

L'API depth è supportata solo su dispositivi con la potenza di elaborazione necessaria per supportare la profondità e deve essere abilitata manualmente in ARCore, come descritto nella sezione Attivare la profondità.

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

Immagini con profondità

L'API depth utilizza un algoritmo per la profondità dal movimento per creare immagini di profondità che offrono una visualizzazione 3D del mondo. Ogni pixel in un'immagine in profondità è associato a una misura di quanto dista la scena dalla fotocamera. Questo algoritmo acquisisce immagini di più dispositivi da diverse angolazioni e le confronta per stimare la distanza di ogni pixel quando l'utente sposta il telefono. Usa il machine learning in modo selettivo per aumentare la profondità di elaborazione, anche con movimenti minimi da parte dell'utente. Inoltre, sfrutta qualsiasi hardware aggiuntivo che il dispositivo dell'utente potrebbe avere. Se il dispositivo dispone di un sensore di profondità dedicato, ad esempio ToF, l'algoritmo unisce automaticamente i dati di tutte le origini disponibili. Questo migliora l'immagine di profondità esistente e consente la profondità anche quando la fotocamera non è in movimento. Offre inoltre maggiore profondità su superfici con poche o nessuna caratteristica, come pareti bianche, o in scene dinamiche con persone o oggetti in movimento.

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

Profondità del movimento

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

Acquisisci immagini di profondità

Con l'API Profondità, puoi recuperare immagini di profondità che corrispondono a ogni fotogramma della fotocamera. Un'immagine con profondità acquisita ha lo stesso intrinseco di timestamp e campo visivo della fotocamera. I dati validi sulla profondità sono disponibili solo dopo che l'utente ha iniziato a spostare il dispositivo, poiché la profondità viene acquisita dal movimento. Le superfici con poche caratteristiche o nulle, come le pareti bianche, vengono associate a una profondità imprecisa.

Passaggio successivo

  • Dai un'occhiata al ARCore Insights Lab, che illustra diversi modi per accedere ai dati sulla profondità.