Ancoraggi nello spazio
Un ancoraggio spaziale rappresenta un punto importante nel mondo in cui il sistema tiene traccia nel tempo. Ogni ancoraggio ha un sistema di coordinate regolabile, basato su altri ancoraggi o fotogrammi di riferimento, per garantire che gli ologrammi ancorati rimangano esattamente sul posto. Il rendering di un ologramma nel sistema di coordinate di un ancoraggio offre la posizione più precisa per quell'ologramma in qualsiasi momento. Ciò viene a costo di piccole regolazioni nel tempo alla posizione dell'ologramma mentre il sistema lo sposta continuamente in posizione in base al mondo reale.
È anche possibile mantenere e condividere ancoraggi spaziali tra sessioni dell'applicazione e in tutti i dispositivi:
- Salvando ancoraggi spaziali locali su disco e caricandoli in un secondo momento, l'applicazione può calcolare la stessa posizione nel mondo reale in più sessioni dell'applicazione in un singolo HoloLens.
- Usando Ancoraggi nello spazio di Azure per creare un ancoraggio cloud, l'applicazione può condividere un ancoraggio spaziale in più dispositivi HoloLens, iOS e Android. Se ogni dispositivo esegue il rendering di un ologramma usando lo stesso ancoraggio spaziale, gli utenti visualizzeranno l'ologramma nello stesso posto del mondo reale. Ciò rende possibili esperienze condivise in tempo reale.
- È anche possibile usare Ancoraggi nello spazio di Azure per la persistenza asincrona degli ologrammi nei dispositivi HoloLens, iOS e Android. Condividendo un ancoraggio spaziale cloud durevole, più dispositivi possono osservare gli stessi ologrammi persistenti nel tempo, anche se questi dispositivi non sono presenti contemporaneamente.
Per le esperienze su scala orizzontale o su larga scala per visori desktop tethered che rimarranno all'interno di un diametro di 5 metri, è in genere possibile usare la cornice di fase di riferimento invece di ancoraggi spaziali, che fornisce un singolo sistema di coordinate in cui eseguire il rendering di tutti i contenuti. Tuttavia, se l'applicazione consente agli utenti di andare oltre 5 metri in HoloLens, forse operando in un intero piano di un edificio, sarà necessario ancoraggi spaziali per mantenere stabile il contenuto.
Gli ancoraggi nello spazio sono uno strumento utilissimo per gli ologrammi che devono rimanere fissi nel mondo. Tuttavia, una volta posizionati, non possono essere spostati. Esistono alternative agli ancoraggi più appropriati per gli ologrammi dinamici che tagano insieme all'utente. È consigliabile posizionare gli ologrammi dinamici usando un frame di riferimento stazioni (la base per le coordinate del mondo di Unity) o un frame di riferimento collegato.
Procedure consigliate
Queste linee guide relative agli ancoraggi nello spazio consentiranno di eseguire il rendering di ologrammi stabili in grado di tenere traccia accuratamente del mondo reale.
Creare gli ancoraggi nello spazio nei punti in cui gli utenti li posizionano
In genere, gli utenti sono quelli che posizionano in modo esplicito ancoraggi spaziali.
Ad esempio, in HoloLens, un'applicazione può intersecare il raggio di sguardo dell'utente con la mesh di mapping spaziale per consentire all'utente di decidere dove posizionare un ologramma. Quando l'utente tocca per posizionare l'ologramma, creare un ancoraggio spaziale al punto di intersezione e quindi posizionare l'ologramma all'origine del sistema di coordinate dell'ancoraggio.
Gli ancoraggi spaziali locali sono facili e efficienti da creare. Il sistema combina i dati interni se più ancoraggi possono condividere i dati dei sensori sottostanti. È consigliabile creare un nuovo ancoraggio spaziale locale per ogni ologramma che un utente inserisce in modo esplicito, tranne nei casi descritti di seguito, ad esempio gruppi rigidi di ologrammi.
Eseguire sempre il rendering degli ologrammi ancorati entro 3 metri dal relativo ancoraggio
Gli ancoraggi nello spazio stabilizzano il relativo sistema di coordinate vicino alla loro origine. Se si esegue il rendering di ologrammi più di 3 metri dall'origine, gli ologrammi potrebbero riscontrare errori posizionali evidenti in proporzione alla distanza da tale origine a causa di effetti di braccio a leva. Ciò funziona anche se l'utente si trova vicino all'ancoraggio, poiché l'ologramma è lontano dall'utente. In altre parole, l'errore angolare dell'ologramma distante sarà piccolo. Tuttavia, se l'utente cammina fino a quell'ologramma distante, sarà grande nella loro vista, rendendo evidenti gli effetti dell'ancoraggio lontano dall'origine di ancoraggio lontano.
Raggruppare gli ologrammi che devono formare un gruppo rigido
Più ologrammi possono condividere lo stesso ancoraggio spaziale se l'applicazione prevede che tali ologrammi mantengano le relazioni fisse tra loro.
Ad esempio, se si anima un sistema solare olografico in una stanza, è meglio legare tutti gli oggetti del sistema solare a un singolo ancoraggio al centro. In questo modo, si muoveranno senza problemi in base l'uno all'altro. In questo caso, è il sistema solare nel suo complesso ancorato, anche se le sue parti componenti si spostano dinamicamente intorno all'ancoraggio.
L'avviso chiave per mantenere la stabilità dell'ologramma consiste nel seguire la regola di 3 metri sopra.
Eseguire il rendering degli ologrammi a elevata dinamicità usando la cornice di riferimento non spostabile invece di un ancoraggio nello spazio locale
Se si dispone di un ologramma altamente dinamico, ad esempio un carattere che cammina intorno a una stanza o un'interfaccia utente mobile che segue lungo il muro vicino all'utente, è preferibile ignorare ancoraggi spaziali locali e eseguire il rendering di tali ologrammi direttamente nel sistema di coordinate fornito dal frame stazioni di riferimento. In Unity si ottiene questo risultato inserendo gli ologrammi direttamente nelle coordinate del mondo senza un WorldAnchor. Gli ologrammi in un frame stazioni di riferimento potrebbero riscontrare deviazioni quando l'utente è lontano dall'ologramma. Ma questo è meno probabile che sia evidente per gli ologrammi dinamici: l'ologramma è costantemente in movimento o il suo movimento mantiene costantemente il movimento vicino all'utente in cui la deriva verrà ridotta al minimo.
Un caso interessante di ologrammi dinamici è costituito da un oggetto che si anima da un sistema di coordinate ancorato a un altro. Ad esempio, potresti avere due castelli a parte 10 metri, ognuno su un proprio ancoraggio spaziale con un castello che sparo una palla di cannone all'altro castello. Quando viene sparato il cannone, è possibile eseguirne il rendering nella posizione appropriata nella cornice di riferimento stazioni per coincidere con il cannone nel primo sistema di coordinate ancorato del castello. La palla può quindi seguire la sua traiettoria nella cornice di riferimento non spostabile mentre percorre 10 metri in aria. Mentre il cannonball raggiunge l'altro castello, è possibile spostarlo nel sistema di coordinate ancorato del secondo castello per consentire calcoli fisici con i corpi rigidi del castello.
Se si condivide un ologramma altamente dinamico tra dispositivi, selezionare un ancoraggio spaziale cloud per agire come padre perché i fotogrammi di riferimento stazioni non possono essere condivisi tra dispositivi. Tuttavia, è necessario assicurarsi che l'ologramma dinamico o i dispositivi che lo visualizzano rimangano all'interno del raggio di 3 metri di ancoraggio in modo che l'ologramma venga visualizzato stabile in tutti i dispositivi.
Evitare di creare una griglia di ancoraggi nello spazio
Si potrebbe essere tentati di eliminare una griglia regolare di ancoraggi spaziali mentre l'utente cammina intorno, passando oggetti dinamici dall'ancoraggio all'ancoraggio mentre si spostano intorno. Tuttavia, ciò comporta una maggiore gestione per l'applicazione, senza il vantaggio dei dati dei sensori profondi che il sistema stesso mantiene internamente. Per questi casi, si otterranno risultati migliori inserendo gli ologrammi nella cornice di riferimento stazioni come descritto nella sezione precedente. Quando si sta pre-posizionando un set di ancoraggi spaziali cloud intorno a uno spazio statico, prendere in considerazione l'inserimento degli ancoraggi spaziali nelle posizioni degli ologrammi chiave che l'utente si incontra per ogni principio sopra anziché creare una griglia arbitraria di ancoraggi. Ciò garantisce la massima stabilità per tali ologrammi chiave.
Rilasciare gli ancoraggi nello spazio locali non più necessari
Mentre un ancoraggio spaziale locale è attivo, il sistema assegna priorità al mantenimento dei dati del sensore vicini all'ancoraggio. Se non si usa più un ancoraggio spaziale, interrompere l'accesso al sistema di coordinate. Ciò consente di rimuovere i dati del sensore sottostanti in base alle esigenze.
Ciò è particolarmente importante per gli ancoraggi locali mantenuti nell'archivio di ancoraggio spaziale. I dati del sensore dietro questi ancoraggi verranno mantenuti in modo permanente per consentire all'applicazione di trovare l'ancoraggio nelle sessioni future, riducendo lo spazio disponibile per tenere traccia di altri ancoraggi. Solo rendere persistenti gli ancoraggi locali che è necessario trovare di nuovo nelle sessioni future. È consigliabile rimuoverli dall'archivio quando non sono più significativi per l'utente.
Per gli ancoraggi nello spazio del cloud, le dimensioni dello spazio di archiviazione possono adattarsi come richiesto dallo scenario. È possibile archiviare il numero di ancoraggi cloud necessari, rilasciandoli quando si sa che gli utenti non dovranno ancorare l'ancoraggio.