Sistemi di coordinate

Alla base, le app di realtà mista posizionano nel tuo mondo ologrammi che sembrano e sembrano oggetti reali. Ciò comporta il posizionamento e l'orientamento preciso di questi ologrammi in luoghi significativi del mondo, sia che il mondo sia la loro stanza fisica o un ambiente virtuale creato. Windows fornisce vari sistemi di coordinate reali per esprimere la geometria, noti come sistemi di coordinate spaziali. È possibile usare i sistemi di coordinate spaziali per pensare alla posizione dell'ologramma, all'orientamento, al raggio dello sguardo fisso o alle posizioni delle mani.


Supporto di dispositivi

Funzionalità HoloLens (prima generazione) HoloLens 2 Visori VR immersive
Frame di riferimento zionario ✔️ ✔️ ✔️
Frame di riferimento associato ✔️ ✔️ ✔️
Frame di riferimento della fase Non ancora supportato Non ancora supportato ✔️
Ancoraggi nello spazio ✔️ ✔️ ✔️
Mapping spaziale ✔️ ✔️
Informazioni sulle scene ✔️

Scalabilità dell'esperienza di realtà mista

È possibile progettare app di realtà mista per un'ampia gamma di esperienze utente, da visualizzatori video a 360 gradi che usano l'orientamento del visore VR ad app e giochi completi su scala globale usando il mapping spaziale e gli ancoraggi nello spaziale:


Scalabilità dell'esperienza Requisiti Esperienza di esempio
Solo orientamento Orientamento del visore VR (allineato alla gravità) Visualizzatore video a 360°
Seated-scale Posizione sopra più visore VR in base alla posizione zero Gioco di corse o simulatore di spazio
Scalabilità permanente Origine del piano superiore e della fase Gioco d'azione in cui si accosta e si mette in atto
Scalabilità delle camere Poligono sopra e limiti di fase Gioco di gioco di gioco in cui è possibile aggirare il game
Scalabilità globale Ancoraggi nello stato (e in genere mapping spaziale) Gioco con i giocatori provenienti dalle pareti reali, ad esempio RoboRaid

La scalabilità dell'esperienza precedente segue un modello di annidamento. Il principio di progettazione chiave per Windows Mixed Reality un visore VR specificato supporta le app create per una scalabilità dell'esperienza di destinazione e tutte le scale inferiori:


Rilevamento 6DOF Piano definito Monitoraggio a 360° Limiti definiti Ancoraggi nello spazio Esperienza massima
No - - - - Solo orientamento
No - - - Seduti
No - - In piedi - Avanti
No - In piedi - 360°
No Room
World

Il frame fase di riferimento non è ancora supportato in HoloLens. Un'app scalabile in HoloLens attualmente deve usare il mapping spaziale o la comprensione della scena per trovare il piano e le pareti dell'utente.

Sistemi di coordinate spaziali

Tutte le applicazioni di grafica 3D usano sistemi di coordinate cartesiani per descrizione delle posizioni e degli orientamenti degli oggetti virtuali. Questi sistemi di coordinate stabiliscono 3 assi perpendicolari lungo i quali posizionare gli oggetti: un asse X, Y e Z.

Nella realtà mista, le app hanno a che fare con i sistemi di coordinate virtuali e fisici. Windows chiama un sistema di coordinate che ha un significato reale nel mondo fisico un sistema di coordinate spaziale.

I sistemi di coordinate spaziali esprimono i valori delle coordinate in metri. Ciò significa che gli oggetti posizionati distanti due unità nell'asse X, Y o Z verranno visualizzati a 2 metri di distanza l'uno dall'altro quando ne viene eseguito il rendering in realtà mista. A questo scopo, è possibile eseguire facilmente il rendering di oggetti e ambienti su scala reale.

In generale, i sistemi di coordinate cartesiani possono essere destro o mancino. I sistemi di coordinate spaziali Windows sono sempre a destra, il che significa che l'asse X positivo punta verso destra, l'asse Y positivo punta verso l'alto (allineato alla gravità) e l'asse Z positivo verso l'utente.

In entrambi i tipi di sistemi di coordinate, l'asse X positivo punta verso destra e l'asse Y positivo punta verso l'alto. La differenza è se l'asse Z positivo punta verso o fuori dall'utente. Ricordare la direzione in cui punta l'asse Z positivo puntando le dita della mano sinistra o destra nella direzione X positiva e arricciandole verso la direzione Y positiva. La direzione verso cui punta il cursore, verso o fuori dall'utente, è la direzione verso cui punta l'asse Z positivo per il sistema di coordinate.

Creazione di un'esperienza solo orientamento o su scala da seduti

La chiave per il rendering olografico è la modifica della visualizzazione dell'app dei relativi ologrammi ogni fotogramma mentre l'utente si sposta, in modo che corrisponda al movimento della testa previsto. È possibile creare esperienze su larga scala che rispettino le modifiche alla posizione della testa e all'orientamento della testa dell'utente usando una cornice di riferimento stazionaria.

Alcuni contenuti devono ignorare gli aggiornamenti della posizione head, rimanendo sempre fissi a un'intestazione scelta e alla distanza dall'utente. L'esempio principale è un video a 360 gradi: poiché il video viene acquisito da un'unica prospettiva fissa, si potrebbe aggirare l'illusione che la posizione di visualizzazione si sposti in base al contenuto, anche se l'orientamento della visualizzazione cambia quando l'utente si guarda intorno. È possibile creare esperienze di questo tipo solo orientamento usando un frame di riferimento associato.

Fotogramma di riferimento stazionario

Il sistema di coordinate fornito da un frame di riferimento stazionario funziona per mantenere le posizioni degli oggetti vicino all'utente il più stabili possibile in base al mondo, rispettando al tempo stesso le modifiche nella posizione head dell'utente.

Per le esperienze su larga scala in un motore di gioco come Unity, un frame di riferimento stazionario è ciò che definisce l'"origine del mondo" del motore. Gli oggetti posizionati in corrispondenza di una coordinata mondo specifica usano il frame di riferimento zionario per definire la posizione nel mondo reale usando le stesse coordinate. Il contenuto che rimane nel mondo, anche quando l'utente si aggira, è noto come contenuto bloccato dal mondo.

Un'app crea in genere un frame di riferimento zionario all'avvio e usa il relativo sistema di coordinate per tutta la durata dell'app. Gli sviluppatori di app in Unity possono iniziare a posizionare il contenuto in base all'origine, che sarà in corrispondenza della posizione iniziale della testa e dell'orientamento dell'utente. Se l'utente si sposta in una nuova posizione e vuole continuare l'esperienza su larga scala, è possibile visualizzare di recente l'origine globale in tale posizione.

Nel corso del tempo, quando il sistema apprende di più sull'ambiente dell'utente, può determinare che le distanze tra i vari punti nel mondo reale sono più brevi o più lunghe di quanto il sistema ritiene in precedenza. Se si esegue il rendering di ologrammi in un frame di riferimento zionario per un'app in HoloLens in cui gli utenti si aggirano oltre un'area di circa 5 metri di larghezza, l'app può osservare la deriva nella posizione osservata di tali ologrammi. Se l'esperienza ha utenti che si aggirano oltre i 5 metri, si sta creando un'esperienza su scala globale, che richiederà altre tecniche per mantenere stabili gli ologrammi, come descritto di seguito.

Frame associato di riferimento

Un frame di riferimento associato si sposta con l'utente mentre si sposta, con un'intestazione fissa definita quando l'app crea per la prima volta il frame. In questo modo l'utente può esaminare comodamente il contenuto inserito all'interno di tale frame di riferimento. Il contenuto sottoposto a rendering in questo modo relativo all'utente è detto contenuto bloccato dal corpo.

Quando il visore non è in grado di capire dove si trova nel mondo, un frame di riferimento collegato fornisce l'unico sistema di coordinate, che può essere usato per eseguire il rendering degli ologrammi. In questo modo è ideale per visualizzare l'interfaccia utente di fallback per indicare all'utente che il dispositivo non è in grado di trovarli nel mondo. Le app con scalabilità orizzontale o superiore devono includere un fallback solo orientamento per aiutare l'utente a tornare a utilizzare l'interfaccia utente, con un'interfaccia utente simile a quella visualizzata nella home page Realtà mista principale.

Creazione di un'esperienza su larga scala o su scala locale

Per andare oltre la scalabilità su un visore immersivo e creare un'esperienza in piedi, è possibile usare il frame di riferimento della fase.

Per offrire un'esperienza su larga scala, consentendo agli utenti di spostarsi all'interno dei limiti di 5 metri predefiniti, è possibile controllare anche i limiti di fase .

Frame di fase di riferimento

Quando si configura per la prima volta un visore vr immersivo, l'utente definisce una fase che rappresenta la stanza in cui si sperimenterà la realtà mista. La fase definisce minimamente un'origine della fase, un sistema di coordinate spaziali centrato in corrispondenza della posizione del piano scelta dall'utente e dell'orientamento in avanti in cui intende usare il dispositivo. Posizionando il contenuto in questo sistema di coordinate della fase sul piano piano Y=0, è possibile assicurarsi che gli ologrammi vengano visualizzati comodamente sul pavimento quando l'utente è in piedi, offrendo agli utenti un'esperienza su larga scala.

Limiti di fase

L'utente può anche definire facoltativamente i limiti di fase, un'area all'interno della stanza che ha eliminato per spostarsi nella realtà mista. In tal caso, l'app può creare un'esperienza su larga scala, usando questi limiti per garantire che gli ologrammi siano sempre posizionati dove l'utente può raggiungerli.

Poiché il frame di riferimento della fase fornisce un singolo sistema di coordinate fisse all'interno del quale posizionare il contenuto relativo al pavimento, è il percorso più semplice per il porting di applicazioni in scala fissa e su scala locale sviluppate per visori di realtà virtuale. Tuttavia, come con queste piattaforme VR, un singolo sistema di coordinate può stabilizzare il contenuto solo in circa un diametro di 5 metri (16 piedi), prima che gli effetti del lever-arm causano lo spostamento notevolmente del contenuto lontano dal centro durante la regolazione del sistema. Per superare i 5 metri, sono necessari ancoraggi spaziali.

Creazione di un'esperienza su scala globale

HoloLens per esperienze su scala mondiale che consentono agli utenti di superare i 5 metri. Per creare un'app su scala globale, sono necessarie nuove tecniche oltre a quelle usate per le esperienze su scala locale.

Perché non è possibile usare un singolo sistema di coordinate rigido oltre i 5 metri

Attualmente, quando si scrivono giochi, app per la visualizzazione dei dati o app di realtà virtuale, l'approccio tipico consiste nel stabilire un sistema di coordinate del mondo assoluto a cui tutte le altre coordinate possono eseguire in modo affidabile il mapping. In tale ambiente è sempre possibile trovare una trasformazione stabile che definisce una relazione tra due oggetti qualsiasi in quel mondo. Se questi oggetti non sono stati spostati, le relative trasformazioni resteranno sempre invariate. Questo tipo di sistema di coordinate globale funziona bene quando si esegue il rendering di un mondo puramente virtuale in cui si conosce in anticipo tutta la geometria. Le app VR su scala di stanza oggi stabiliscono in genere questo tipo di sistema di coordinate assoluto su scala di stanza con la relativa origine sul pavimento.

Al contrario, un dispositivo di realtà mista senzathering, ad esempio HoloLens, ha una comprensione dinamica del mondo basata su sensori, adattando continuamente le proprie conoscenze nel corso del tempo all'ambiente dell'utente mentre attraversano molti metri su un intero piano di un edificio. In un'esperienza su scala globale, se tutti gli ologrammi sono stati inseriti in un unico sistema di coordinate rigidi, questi ologrammi andrebbero necessariamente alla deriva nel tempo, in base al mondo o l'uno all'altro.

Ad esempio, il visore potrebbe attualmente ritiene che due posizioni nel mondo siano distanti 4 metri e quindi affinare in seguito tale comprensione, apprendendo che le posizioni sono di fatto a 3,9 metri di distanza. Se questi ologrammi erano stati posizionati inizialmente a 4 metri di distanza in un unico sistema di coordinate rigido, uno di essi apparirebbe sempre a 0,1 metri di distanza dal mondo reale.

Ancoraggi nello spazio

Windows Mixed Reality risolve il problema descritto nella sezione precedente consentendo di creare ancoraggi spaziali per contrassegnare punti importanti nel mondo in cui l'utente ha inserito ologrammi. Un ancoraggio nello spazio rappresenta un punto importante nel mondo di cui il sistema deve tenere traccia nel tempo.

Quando il dispositivo apprende il mondo, questi ancoraggi spaziali possono regolare la propria posizione in base alle esigenze per garantire che ogni ancoraggio rimanga esattamente dove è stato posizionato in base al mondo reale. Posizionando un ancoraggio spaziale nella posizione in cui l'utente posiziona un ologramma e quindi posizionando l'ologramma in base al relativo ancoraggio spaziale, è possibile assicurarsi che l'ologramma mantenga una stabilità ottimale, anche quando l'utente si aggira su decine di metri.

Questa regolazione continua degli ancoraggi nello spazio in base l'uno all'altro è la differenza chiave tra i sistemi di coordinate dagli ancoraggi spaziali e dai fotogrammi di riferimento stazionari:

  • Ologrammi posizionati nel frame di riferimento zionario mantengono una relazione rigida l'uno con l'altro. Tuttavia, mentre l'utente percorre lunghe distanze, il sistema di coordinate di tale fotogramma può derivare in base al mondo per garantire che gli ologrammi accanto all'utente siano stabili.

  • Ologrammi inseriti nel frame della fase di riferimento mantengono una relazione rigida l'uno con l'altro. A differenza del frame fisso, il frame della fase rimane sempre fisso sul posto in base all'origine fisica definita. Tuttavia, il contenuto sottoposto a rendering nel sistema di coordinate della fase oltre il limite di 5 metri sarà stabile solo quando l'utente si trova all'interno di tale limite.

  • Ologrammi posizionato usando un ancoraggio spaziale può derivare in base agli ologrammi posizionati usando un altro ancoraggio spaziale. Ciò consente Windows di migliorare la comprensione della posizione di ogni ancoraggio spaziale, anche se, ad esempio, un ancoraggio deve regolarsi a sinistra e un altro ancoraggio deve adattarsi a destra.

A differenza di un frame di riferimento zionario, che ottimizza sempre la stabilità vicino all'utente, il frame di fase dei riferimenti e degli ancoraggi spaziali garantisce la stabilità vicino alle origini. Ciò consente a questi ologrammi di rimanere esattamente sul posto nel corso del tempo, ma significa anche che gli ologrammi sottoposti a rendering troppo lontano dall'origine del sistema di coordinate sperimenteranno effetti sempre più gravi sul lever-arm. Ciò è dovuto al fatto che piccole modifiche alla posizione e all'orientamento della fase o dell'ancoraggio vengono ingrandite proporzionalmente alla distanza dall'ancoraggio.

Una buona regola generale è garantire che qualsiasi elemento di cui viene eseguito il rendering in base al sistema di coordinate di un ancoraggio spaziale distante si trova entro circa 3 metri dall'origine. Per un'origine di fase vicina, il rendering di contenuto distante è OK, perché qualsiasi errore posizionale aumentato influirà solo su piccoli ologrammi che non si spostano molto nella visualizzazione dell'utente.

Persistenza dell'ancoraggio spaziale

Gli ancoraggi nello spaziale possono anche consentire all'app di ricordare una posizione importante anche dopo la sospensione o l'arresto del dispositivo.

È possibile salvare su disco gli ancoraggi nello spazio creati dall'app e quindi caricarli di nuovo in un secondo momento, salvandoli in modo permanente nell'archivio di ancoraggi nello spazio dell'app. Quando si salva o si carica un ancoraggio, si specifica una chiave stringa significativa per l'app, per identificare l'ancoraggio in un secondo momento. Si pensi a questa chiave come al nome file per l'ancoraggio. Se si vogliono associare altri dati a tale ancoraggio, ad esempio un modello 3D inserito dall'utente in tale posizione, salvarli nell'archiviazione locale dell'app e associarli alla chiave scelta.

Con la persistenza degli ancoraggi per lo Store, gli utenti possono posizionare singoli ologrammi o posizionare un'area di lavoro intorno alla quale un'app inserirà i vari ologrammi e quindi trovare tali ologrammi in un secondo momento, dove si aspettano, in molti usi dell'app.

È anche possibile usare Ancoraggi nello stato di Azure per la persistenza ologramma asincrona HoloLens dispositivi iOS e Android. Condividendo un ancoraggio spaziale cloud durevole, più dispositivi possono osservare lo stesso ologramma persistente nel tempo, anche se tali dispositivi non sono presenti contemporaneamente.

Condivisione dell'ancoraggio spaziale

L'app può anche condividere un ancoraggio spaziale in tempo reale con altri dispositivi, consentendo esperienze condivise in tempo reale.

Usando Ancoraggi nello stato di Azure, l'app può condividere un ancoraggio spaziale tra più dispositivi HoloLens, iOS e Android. Facendo in modo che ciascun dispositivo esegua il rendering di un ologramma usando lo stesso ancoraggio nello spazio, tutti gli utenti vedranno l'ologramma nello stesso punto nel mondo reale.

Evitare il contenuto con head-locked

È fortemente sconsigliato il rendering di contenuto head-locked, che rimane in un punto fisso dello schermo (ad esempio un HUD). In generale, il contenuto con head-locked è scomodo per gli utenti e non sembra una parte naturale del proprio mondo.

Il contenuto bloccato dalla testa deve in genere essere sostituito con ologrammi collegati all'utente o inseriti nel mondo stesso. Ad esempio, i cursori devono in genere essere inseriti nel mondo, ridimensionando in modo naturale per riflettere la posizione e la distanza dell'oggetto sotto lo sguardo dell'utente.

Gestione degli errori di rilevamento

In alcuni ambienti, ad esempio i bordi bui, potrebbe non essere possibile che un visore che usa il rilevamento interno non sia in grado di individuarsi correttamente nel mondo. In questo modo gli ologrammi possono non essere visualizzati o essere visualizzati in posizioni non corrette se gestiti in modo non corretto. Vengono ora illustrate le condizioni in cui ciò può verificarsi, l'impatto sull'esperienza utente e i suggerimenti per gestire al meglio questa situazione.

Il visore non è in grado di tenere traccia a causa di dati del sensore insufficienti

In alcuni casi, i sensori del visore non sono in grado di capire dove si trova il visore. Ciò avviene se:

  • La stanza è scura
  • Se i sensori sono coperti da peli o mani
  • Se l'ambiente circostante non ha una trama sufficiente.

In questo caso, il visore non sarà in grado di tenere traccia della propria posizione con una precisione sufficiente per eseguire il rendering degli ologrammi con blocco del mondo. Non è possibile capire dove si basa un ancoraggio spaziale, una cornice stazionaria o una cornice di fase in base al dispositivo. Tuttavia, è comunque possibile eseguire il rendering del contenuto bloccato dal corpo nel frame di riferimento associato.

L'app deve indicare all'utente come recuperare il rilevamento posizionale, rendendo il rendering di alcuni contenuti bloccati dal corpo di fallback che descrivono alcuni suggerimenti, ad esempio scoprire i sensori e accendere più luci.

Il visore rileva in modo non corretto a causa di modifiche dinamiche nell'ambiente

Il dispositivo non è in grado di rilevare correttamente se sono presenti numerose modifiche dinamiche nell'ambiente, ad esempio molte persone che si aggirano nella stanza. In questo caso, gli ologrammi possono sembrare un salto o una deriva quando il dispositivo tenta di rilevare se stesso in questo ambiente dinamico. Se si verifica questo scenario, è consigliabile usare il dispositivo in un ambiente meno dinamico.

Il visore rileva in modo non corretto perché l'ambiente è cambiato in modo significativo nel tempo

Quando si inizia a usare un visore in un ambiente in cui sono stati spostati mobili, appendici a parete e così via, è possibile che alcuni ologrammi appaia spostati dalla posizione originale. Gli ologrammi precedenti possono anche saltare mentre l'utente si sposta nel nuovo spazio perché la comprensione dello spazio del sistema non è più vera. Il sistema prova quindi a modificare il mapping dell'ambiente, cercando anche di riconciliare le funzionalità della stanza. In questo scenario è consigliabile invitare gli utenti a sostituire gli ologrammi aggiunti nel mondo se non vengono visualizzati dove previsto.

Il visore rileva in modo non corretto a causa di spazi identici in un ambiente

In alcuni casi, una casa o un altro spazio può avere due aree identiche. Ad esempio, due sale riunioni identiche, due aree angolari identiche, due poster identici di grandi dimensioni che coprono il campo di visualizzazione del dispositivo. In questi scenari, il dispositivo può, a volte, confondersi tra le parti identiche e contrassegnarle come uguali nella relativa rappresentazione interna. Ciò potrebbe causare la visualizzazione degli ologrammi di alcune aree in altre posizioni. Il dispositivo potrebbe iniziare a perdere il rilevamento spesso perché la relativa rappresentazione interna dell'ambiente è stata danneggiata. In questo caso, è consigliabile reimpostare la comprensione dell'ambiente del sistema. La reimpostazione della mappa comporta la perdita di tutti i posizionamenti dell'ancoraggio spaziale. In questo modo il visore sarà ben monitorato nelle aree univoche dell'ambiente. Tuttavia, il problema può ripetersi se il dispositivo viene confuso tra le aree identiche.

Vedi anche