Ancoraggi nello spazio
Un ancoraggio spaziale rappresenta un punto importante nel mondo che il sistema tiene traccia nel tempo. Ogni ancoraggio ha un sistema di coordinate regolabile, basato su altri ancoraggi o frame 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 il posizionamento più preciso per l'ologramma in qualsiasi momento. Ciò comporta il costo di piccole regolazioni nel tempo alla posizione dell'ologramma quando il sistema lo sposta continuamente in posizione in base al mondo reale.
È anche possibile rendere persistenti e condividere ancoraggi nello spazio tra le sessioni dell'applicazione: salvando ancoraggi nello spazio locali su disco e caricandoli di nuovo in un secondo momento, l'applicazione può calcolare la stessa posizione nel mondo reale in più sessioni dell'applicazione in un singolo Dispositivo HoloLens.
Per le esperienze su scala in piedi o su scala locale per visori VR desktop con tethering che rimarranno entro un diametro di 5 metri, in genere è possibile usare il frame di fase di riferimento invece di ancoraggi nello spazio, che fornisce un unico sistema di coordinate in cui eseguire il rendering di tutto il contenuto. Tuttavia, se l'applicazione consente agli utenti di andare oltre 5 metri in HoloLens, forse operando in un intero piano di un edificio, saranno necessari ancoraggi nello spazio 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 contrassegnano insieme all'utente. È consigliabile posizionare gli ologrammi dinamici usando un frame di riferimento fisso (la base per le coordinate del mondo di Unity) o un frame di riferimento associato.
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 nello spazio.
Ad esempio, in HoloLens, un'applicazione può intersecare il raggio dello sguardo fisso 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 nello spazio nel punto di intersezione e quindi posizionare l'ologramma all'origine del sistema di coordinate dell'ancoraggio.
Gli ancoraggi nello spazio locali sono facili e efficienti da creare. Il sistema combina i dati interni se più ancoraggi possono condividere i dati del sensore sottostanti. È consigliabile creare un nuovo ancoraggio nello spazio 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 eseguono il rendering di ologrammi superiori a 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 se l'utente si trova vicino all'ancoraggio, poiché l'ologramma è lontano anche dall'utente. In altre parole, l'errore angolare dell'ologramma distante sarà piccolo. Tuttavia, se l'utente cammina fino a quell'ologramma lontano, sarà grande nella loro vista, rendendo ovvio lever-arm effetti dall'origine dell'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 relazioni fisse tra loro.
Ad esempio, se si anima un sistema solare olografico in una stanza, è preferibile collegare 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'avvertenza chiave per mantenere la stabilità dell'ologramma consiste nel seguire la regola di 3 metri precedente.
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 personaggio che cammina intorno a una stanza o un'interfaccia utente mobile che segue lungo il muro vicino all'utente, è consigliabile ignorare gli ancoraggi nello spazio locale ed eseguire il rendering di tali ologrammi direttamente nel sistema di coordinate fornito dalla cornice di riferimento stazionaria. In Unity è possibile posizionare gli ologrammi direttamente nelle coordinate del mondo senza worldAnchor. Gli ologrammi in una cornice di riferimento fissa potrebbero riscontrare deviazioni quando l'utente è lontano dall'ologramma. Ma questo è meno probabile che sia evidente per gli ologrammi dinamici: l'ologramma si muove costantemente comunque o il suo movimento lo mantiene costantemente vicino all'utente in cui la deriva verrà ridotta a icona.
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 10 metri di distanza, ognuno sul proprio ancoraggio spaziale con un castello che spara una palla di cannone all'altro castello. Quando viene sparato il cannone, è possibile eseguirne il rendering nella posizione appropriata nella cornice di riferimento fissa per coincidere con il cannone nel sistema di coordinate ancorato del primo 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, puoi spostarlo nel sistema di coordinate ancorato del secondo castello per consentire calcoli di fisica con i corpi rigidi del castello.
Se si condivide un ologramma altamente dinamico tra dispositivi, selezionare un ancoraggio nello spazio cloud da usare come padre perché i fotogrammi di riferimento fissi non possono essere condivisi tra dispositivi. Tuttavia, è necessario assicurarsi che l'ologramma dinamico o i dispositivi che lo visualizzano rimangano entro il raggio di 3 metri dell'ancoraggio in modo che l'ologramma venga visualizzato stabile in tutti i dispositivi.
Evitare di creare una griglia di ancoraggi nello spazio
È possibile che l'applicazione rilasci una griglia regolare di ancoraggi nello spazio mentre l'utente si sposta in giro, passando oggetti dinamici dall'ancoraggio all'ancoraggio mentre si spostano. Tuttavia, ciò comporta una gestione maggiore per l'applicazione, senza il vantaggio dei dati dei sensori profondi che il sistema stesso gestisce internamente. Per questi casi, si otterranno risultati migliori inserendo gli ologrammi nella cornice di riferimento stazionaria come descritto nella sezione precedente. Quando si pre-posiziona un set di ancoraggi nello spazio cloud intorno a uno spazio statico, è consigliabile posizionare gli ancoraggi nello spazio nelle posizioni degli ologrammi chiave che l'utente incontra in base al principio precedente 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 nello spazio locale è attivo, il sistema assegna la priorità mantenendo i dati del sensore vicini a tale 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.
Questo aspetto è particolarmente importante per gli ancoraggi locali salvati in modo permanente nell'archivio di ancoraggi nello spazio. I dati del sensore dietro questi ancoraggi verranno mantenuti in modo permanente per consentire all'applicazione di trovare tale ancoraggio nelle sessioni future, riducendo così 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 dallo Store 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 hanno più bisogno dell'ancoraggio.