Guide specifiche per piattaforma
Android (Kotlin/Java)
Android NDK (C)
Unity (Fondazione AR)
I contenuti AR devono essere posizionati e ridimensionati in modo corretto per confondersi con una scena. Come gli oggetti del mondo reale, gli oggetti virtuali più lontani dovrebbero apparire più piccoli. Puoi eseguire un hit-test (o un raycast in AR Foundation for Unity) per determinare la posizione corretta di un oggetto 3D nella scena. Un posizionamento corretto assicura che i contenuti AR vengano visualizzati con le dimensioni appropriate (apparenti).
Gli hit-test trovano intersezioni tra la geometria 3D del mondo reale e un raggio virtuale costituito da un'origine e una direzione. I raggi con la fotocamera del dispositivo come origine vengono utilizzati più comunemente, anche se ARCore include un'API per eseguire hit test con un raggio arbitrario nelle coordinate spaziali.
Immagina che ci sia un raggio proveniente dalla videocamera del dispositivo di un utente che si estende in avanti fino a raggiungere la geometria 3D della scena, ad esempio un pavimento, una parete o un oggetto. Successivamente, riceverai un elenco di risultati degli hit o degli incroci con la geometria della scena rilevata. L'elenco è ordinato in base alla distanza dal dispositivo, partendo dall'intersezione più vicina. Questo è importante perché in genere non è possibile vedere gli oggetti nascosti dietro altri oggetti, quindi nella maggior parte delle volte il primo risultato è il più significativo.
Contenuti del risultato di un hit
Per ogni risultato, viene restituito un elenco con le seguenti informazioni:
- Distanza dall'origine del raggio, in metri
- Posa (posizione e orientamento) del risultato dell'hit
- La geometria 3D che hai colpito, sotto forma di un oggetto
Successivamente, puoi utilizzare il risultato di hit desiderato per posizionare realisticamente i contenuti 3D con un ancoraggio.
Tipi di risultati di hit
Esistono quattro tipi di risultati: risultati relativi a profondità, piani, feature point e posizionamento istantaneo. Ciascuno ha i propri casi d'uso e compromessi, come mostrato nella tabella seguente.
Tipo di risultato di hit | Descrizione | Orientamento | Caso d'uso |
---|---|---|---|
Profondità | Utilizza le informazioni di profondità provenienti dall'intera scena per determinare la profondità e l'orientamento corretti di un punto | Perpendicolare alla superficie 3D | Posiziona un oggetto virtuale su una superficie arbitraria (non solo su pavimenti e pareti) |
Aereo | Colpisce superfici orizzontali e/o verticali per determinare la profondità e l'orientamento corretti di un punto | Perpendicolare alla superficie 3D | Posiziona un oggetto su un piano (pavimento o parete) utilizzando la geometria completa del piano. Serve immediatamente la bilancia corretta. Fallback per l'hit test di profondità |
Caratteristica | Si basa sulle caratteristiche visive attorno al punto di tocco dell'utente per determinare la posizione e l'orientamento corretti di un punto | Perpendicolare alla superficie 3D | Posiziona un oggetto su una superficie arbitraria (non solo su pavimenti e pareti) |
Posizionamento istantaneo (Raycast permanente) | Utilizza lo spazio sullo schermo per posizionare i contenuti. Utilizza inizialmente la profondità stimata fornita dall'app. Funziona all'istante, ma la posa e la profondità effettiva cambieranno una volta che ARCore sarà in grado di determinare la geometria effettiva della scena | +Y rivolto verso l'alto, opposto alla gravità | Posiziona un oggetto su un piano (pavimento o parete) utilizzando la geometria completa del piano dove il posizionamento rapido è fondamentale e l'esperienza può tollerare profondità e scala iniziali sconosciute |
Compatibilità dei dispositivi
Gli hit test funzionano su tutti i dispositivi supportati da ARCore, ma gli hit test relativi alla profondità richiedono dispositivi supportati per la profondità.
Utilizzare i risultati degli hit per posizionare contenuti AR
Una volta ottenuto il risultato di un hit, puoi utilizzare la sua posa come input per posizionare i contenuti AR nella scena.