Sistemi di coordinate

Al loro base, le app di realtà mista posizionano gli ologrammi nel tuo mondo che sembrano e suonano oggetti reali. Ciò implica esattamente la posizione e l'orientamento di tali ologrammi in luoghi significativi nel mondo, indipendentemente dal fatto che il mondo sia la loro stanza fisica o un regno virtuale creato. Windows offre vari sistemi di coordinate reali per esprimere geometry--questi sono noti come sistemi di coordinate spaziali. È possibile usare questi sistemi per motivi relativi alla posizione dell'ologramma, all'orientamento, al raggio di sguardo o alle posizioni della mano.

Supporto di dispositivi

Funzionalità HoloLens (prima generazione) HoloLens 2 Visori VR immersive
Fotogramma stazioni di riferimento ✔️
Cornice associata di riferimento ✔️
Cornice di fase di riferimento 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 usando l'orientamento visore a app e giochi su scala mondiale con mapping spaziale e ancoraggi spaziali:


Scalabilità dell'esperienza Requisiti Esperienza di esempio
Solo orientamento Orientamento visore (allineato alla gravità) Visualizzatore video di 360°
Scala seduta Sopra la posizione del visore in base alla posizione zero Gioco da corsa o simulatore di spazio
Scalabilità in piedi Sopra l'origine del piano di fase più Gioco d'azione in cui si anatra e schivare sul posto
Scala di camere Sopra più limiti di fase poligono Gioco di puzzle dove si cammina intorno al puzzle
Scala mondiale Ancoraggi spaziali (e in genere mapping spaziale) Gioco con nemici provenienti dalle tue pareti reali, come RoboRaid

L'esperienza viene ridimensionata sopra seguendo un modello di "bambole annidamento". Il principio di progettazione chiave per Windows Mixed Reality è questo: un determinato visore visore supporta le app compilate per una scala di esperienza di destinazione e tutte le scalabilità inferiori.


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

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

Sistemi di coordinate spaziali

Tutte le applicazioni grafiche 3D usano sistemi di coordinate Cartesian per ragionare sulle posizioni e gli orientamenti degli oggetti virtuali. Questi sistemi di coordinate stabiliscono tre assi perpendicolare: X, Y e Z. Ogni oggetto aggiunto a una scena avrà una posizione XYZ nel sistema di coordinate. Windows chiama un sistema di coordinate che ha un significato reale nel mondo fisico un sistema di coordinate spaziali , che esprime i relativi valori di coordinate in metri. Ciò significa che gli oggetti posizionati due unità a parte sull'asse X, Y o Z verranno visualizzati due metri a parte l'uno dall'altro quando viene eseguito il rendering in realtà mista. Sapendo questo, è possibile eseguire facilmente il rendering di oggetti e ambienti su scala reale.

In generale, i sistemi di coordinate Cartesian vengono definiti "destro" o "a sinistra" perché è possibile usare le posizioni della mano per indicare le direzioni degli assi XYZ. In entrambi i sistemi di coordinate, l'asse X positivo punta a destra e l'asse Y positivo punta verso l'alto. La differenza tra i due è che nel sistema di coordinate destra, l'asse Z punta verso di voi, mentre nel sistema di coordinate a sinistra l'asse Z punta lontano da voi.

Immagine della mano destra di una persona che dimostra il sistema di coordinate destro

Immagine della mano sinistra di una persona che dimostra il sistema di coordinate sinistrorso

I sistemi di coordinate spaziali in Windows (e quindi, Windows Mixed Reality) sono sempre a destra.

[! NOTE SULLA]

  • Unity e Unreal usano il sistema di coordinate sinistrorso.
  • Anche se le coordinate sinistrorse e destrorse sono i sistemi più comuni, esistono altri sistemi di coordinate usati nel software 3D. Ad esempio, non è insolito per le applicazioni di modellazione 3D usare un sistema di coordinate in cui l'asse Y punta verso o lontano dal visualizzatore e l'asse Z punta verso l'alto.

Creazione di un'esperienza di sola orientamento o su scala seduta

La chiave per il rendering olografico sta modificando la visualizzazione dell'app degli ologrammi di ogni fotogramma quando l'utente si sposta, in modo che corrisponda al movimento previsto della testa. È possibile creare esperienze in scala seduta che rispettino le modifiche alla posizione e all'orientamento della testa dell'utente usando un frame fisso di riferimento.

Alcuni contenuti devono ignorare gli aggiornamenti della posizione della testa, rimanendo fissi a un'intestazione scelta e alla distanza sempre dall'utente. L'esempio principale è il video a 360 gradi: poiché il video viene acquisito da una singola prospettiva fissa, rovina l'illusione che la posizione di visualizzazione si sposti in base al contenuto, anche se l'orientamento della visualizzazione cambia man mano che l'utente guarda intorno. È possibile creare esperienze di sola orientamento usando un frame di riferimento collegato.

Cornice di riferimento stazionaria

Il sistema di coordinate fornito da un frame fisso di riferimento funziona per mantenere le posizioni degli oggetti vicino all'utente il più stabile possibile in base al mondo, rispettando al tempo stesso i cambiamenti nella posizione della testa dell'utente.

Per le esperienze su scala seduta in un motore di gioco come Unity, un frame fisso di riferimento è ciò che definisce l'"origine mondiale del motore". Gli oggetti posizionati in corrispondenza di una coordinata globale specifica usano la cornice di riferimento fisso per definire la loro posizione nel mondo reale usando le stesse coordinate. Il contenuto che rimane inserito nel mondo, anche quando l'utente cammina in giro, è noto come contenuto bloccato al mondo .

Un'app in genere creerà un frame di riferimento fisso all'avvio e userà il sistema di coordinate per tutta la durata dell'app. Gli sviluppatori di app in Unity possono iniziare a inserire il contenuto in base all'origine, che si troverà nella posizione e nell'orientamento iniziale dell'utente. Se l'utente si sposta in un nuovo posto e vuole continuare la propria esperienza di ridimensionamento, è possibile aggiornare l'origine del mondo in tale posizione.

Nel corso del tempo, man mano che il sistema apprende di più sull'ambiente dell'utente, può determinare che le distanze tra vari punti nel mondo reale sono più brevi o più lunghe del sistema creduto in precedenza. Se esegui il rendering degli ologrammi in un frame di riferimento fisso per un'app in HoloLens in cui gli utenti si spostano 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 5 metri, si sta creando un'esperienza su scala mondiale, che richiederà altre tecniche per mantenere stabili gli ologrammi, come descritto di seguito.

Frame collegato di riferimento

Un frame collegato di riferimento si sposta con l'utente mentre cammina, con un'intestazione fissa definita quando l'app crea per la prima volta il frame. Ciò consente all'utente di esaminare comodamente il contenuto posizionato all'interno di tale cornice di riferimento. Il rendering del contenuto in questo modo relativo all'utente è denominato contenuto bloccato dal corpo .

Quando il visore VR non riesce a capire dove si trova nel mondo, un frame collegato di riferimento 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 riesce a trovarli nel mondo. Le app con scalabilità seduta o superiore devono includere un fallback di sola orientamento per aiutare l'utente a tornare indietro, con un'interfaccia utente simile a quella mostrata nella home Realtà mista.

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

Per andare oltre la scala seduta su un visore VR immersivo e creare un'esperienza su scala permanente, è possibile usare il telaio di fase di riferimento.

Per offrire un'esperienza su scala locale, consentendo agli utenti di spostarsi all'interno del limite di 5 metri predefinito, è anche possibile verificare la presenza di limiti di fase .

Frame di fase di riferimento

Quando si configura per la prima volta un visore VR immersive, l'utente definisce una fase, che rappresenta la stanza in cui avverrà la realtà mista. La fase definisce in modo minimo un'origine di fase, un sistema di coordinate spaziali centrato nella posizione del pavimento scelta dall'utente e l'orientamento in avanti in cui intende utilizzare il dispositivo. Posizionando il contenuto in questo sistema di coordinate di fase sul piano piano Y=0, è possibile assicurarsi che gli ologrammi vengano visualizzati comodamente sul pavimento quando l'utente è in piedi, fornendo agli utenti un'esperienza su scala permanente.

Limiti di fase

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

Poiché il frame di fase di riferimento fornisce un singolo sistema di coordinate fisso all'interno del quale posizionare il contenuto relativo al pavimento, è il percorso più semplice per convertire applicazioni su scala e scala ambiente sviluppate per visori VR di realtà virtuale. Tuttavia, come per queste piattaforme VR, un singolo sistema di coordinate può stabilizzare solo il contenuto in circa un diametro di 5 metri (16 piedi), prima che gli effetti del braccio a leva causino il contenuto lontano dal centro per spostarsi notevolmente man mano che il sistema si regola. Per superare i 5 metri, sono necessari ancoraggi nello spazio.

Creazione di un'esperienza su scala mondiale

HoloLens consente di ottenere esperienze reali su scala mondiale che consentono agli utenti di andare oltre 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 utilizzare un singolo sistema di coordinate rigide oltre 5 metri

Oggi, quando si scrivono giochi, app di visualizzazione dei dati o app di realtà virtuale, l'approccio tipico consiste nel stabilire un sistema di coordinate globale assoluto a cui tutte le altre coordinate possono eseguire il mapping affidabile. In tale ambiente è sempre possibile trovare una trasformazione stabile che definisce una relazione tra due oggetti in tale mondo. Se tali oggetti non sono stati spostati, le relative trasformazioni rimarranno 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 tutta la geometria in anticipo. Le app VR su scala room oggi stabiliscono in genere questo tipo di sistema di coordinate assoluto su scala room con la sua origine sul pavimento.

Al contrario, un dispositivo di realtà mista senza tethering, ad esempio HoloLens, ha una comprensione dinamica basata su sensori del mondo, modificando continuamente le proprie conoscenze nel tempo dell'ambiente circostante dell'utente mentre camminano molti metri su un intero piano di un edificio. In un'esperienza su scala mondiale, se si inseriscono tutti gli ologrammi in un unico sistema di coordinate rigide, tali ologrammi si scosteranno necessariamente nel tempo, in base al mondo o tra loro.

Ad esempio, il visore VR potrebbe attualmente credere che due posizioni del mondo siano a 4 metri di distanza, e poi perfezionare quella comprensione, imparando che le posizioni sono infatti di 3,9 metri a parte. Se questi ologrammi fossero stati inizialmente posizionati a 4 metri di distanza in un unico sistema di coordinate rigide, uno di essi apparirebbe sempre 0,1 metri dal mondo reale.

Ancoraggi nello spazio

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

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

Questa regolazione continua degli ancoraggi nello spazio in base l'una all'altra è la differenza fondamentale tra i sistemi di coordinate dagli ancoraggi spaziali e dai fotogrammi fissi di riferimento:

  • Gli ologrammi posizionati nella cornice stazionaria di riferimento mantengono una relazione rigida tra loro. Tuttavia, man mano che l'utente cammina a lunghe distanze, il sistema di coordinate del frame può derivare in base al mondo per garantire che gli ologrammi accanto all'utente appaiano stabili.

  • Anche gli ologrammi posizionati nella cornice di fase di riferimento mantengono una relazione rigida l'una con l'altra. A differenza del telaio fisso, il telaio di fase rimane sempre fisso in base all'origine fisica definita. Tuttavia, il contenuto di cui è stato eseguito il rendering nel sistema di coordinate della fase oltre il limite di 5 metri verrà visualizzato solo stabile mentre l'utente si trova entro tale limite.

  • Gli ologrammi posizionati usando un ancoraggio spaziale possono derivare in base agli ologrammi posizionati usando un altro ancoraggio spaziale. In questo modo Windows può migliorare la comprensione della posizione di ogni ancoraggio spaziale, anche se, ad esempio, un ancoraggio deve regolare se stesso a sinistra e un altro ancoraggio deve regolare a destra.

A differenza di un frame fisso di riferimento, che ottimizza sempre la stabilità vicino all'utente, la cornice di fase di riferimento e ancoraggi nello spazio garantisce la stabilità nelle vicinanze delle origini. In questo modo questi ologrammi rimangono esattamente sul posto nel tempo, ma significa anche che gli ologrammi sottoposti a rendering troppo lontano dall'origine del sistema di coordinate sperimenteranno effetti sempre più gravi del braccio a leva. Ciò è dovuto al fatto che le piccole regolazioni alla posizione e all'orientamento della fase o dell'ancoraggio sono ingrandita proporzionalmente alla distanza da tale ancoraggio.

Una buona regola generale consiste nel garantire che tutto ciò che si esegue il rendering in base al sistema di coordinate di un ancoraggio spaziale distante si trova all'interno di circa 3 metri dell'origine. Per un'origine della fase vicina, il rendering di contenuto distante è OK, perché qualsiasi errore posizionale aumentato influirà solo su piccoli ologrammi che non cambiano molto nella visualizzazione dell'utente.

Persistenza dell'ancoraggio nello spazio

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

È possibile salvare su disco gli ancoraggi nello spazio creati dall'app e quindi caricarli nuovamente 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 vuoi associare altri dati a tale ancoraggio, ad esempio un modello 3D inserito dall'utente in tale posizione, salvalo nella risorsa di archiviazione locale dell'app e associalo alla chiave scelta.

Grazie alla persistenza degli ancoraggi allo Store, gli utenti possono posizionare singoli ologrammi o posizionare un'area di lavoro in cui un'app inserisce i vari ologrammi e quindi trovare gli ologrammi in un secondo momento in cui li aspettano, in molti usi dell'app.

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

Condivisione di ancoraggi nello spazio

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

Usando Ancoraggi nello spazio 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 bloccato con la testa

È consigliabile eseguire il rendering del contenuto bloccato con la testa, che rimane a un punto fisso nello schermo ,ad esempio un HUD. In generale, il contenuto bloccato a testa è scomodo per gli utenti e non si sente come una parte naturale del loro 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 essere in genere spostati verso il mondo, ridimensionando naturalmente in modo da riflettere la posizione e la distanza dell'oggetto sotto lo sguardo dell'utente.

Gestione degli errori di rilevamento

In alcuni ambienti come corridoi scuri, potrebbe non essere possibile che un visore VR usi il tracciamento interno per individuarsi correttamente nel mondo. Questo può portare gli ologrammi a non essere visualizzati o visualizzati in posizioni non corrette se gestiti in modo non corretto. Verranno ora illustrate le condizioni in cui ciò può verificarsi, l'impatto sull'esperienza utente e i suggerimenti per gestire meglio questa situazione.

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

A volte, i sensori del visore VR non sono in grado di capire dove si trova l'auricolare. Ciò avviene se:

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

In questo caso, il visore VR non sarà in grado di tenere traccia della posizione con una precisione sufficiente per eseguire il rendering degli ologrammi bloccati dal mondo. Non è possibile determinare dove un ancoraggio spaziale, un frame fisso o un frame di fase si basa sul dispositivo. Tuttavia, è comunque possibile eseguire il rendering del contenuto bloccato dal corpo nel frame collegato di riferimento.

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

Il visore VR tiene traccia erroneamente a causa di modifiche dinamiche nell'ambiente

Il dispositivo non può tenere traccia correttamente se ci sono molte modifiche dinamiche nell'ambiente, ad esempio molte persone che camminano nella stanza. In questo caso, gli ologrammi possono sembrare saltare o derivare quando il dispositivo tenta di tenere traccia di se stesso in questo ambiente dinamico. Se si raggiunge questo scenario, è consigliabile usare il dispositivo in un ambiente meno dinamico.

Il visore VR tiene traccia erroneamente perché l'ambiente è cambiato in modo significativo nel tempo

Quando si inizia a usare un visore VR in un ambiente in cui mobili, pareti appesi e così via, è stato spostato, è possibile che alcuni ologrammi possano apparire spostati dalle loro posizioni originali. Gli ologrammi precedenti possono anche spostarsi quando l'utente si sposta nel nuovo spazio perché la comprensione dello spazio del sistema non è più vera. Il sistema tenta quindi di rieseguire il mapping dell'ambiente cercando anche di riconciliare le caratteristiche della stanza. In questo scenario, è consigliabile incoraggiare gli utenti a sostituire gli ologrammi aggiunti nel mondo se non vengono visualizzati dove previsto.

Il visore VR tiene traccia erroneamente a causa di spazi identici in un ambiente

A volte, una casa o un altro spazio può avere due aree identiche. Ad esempio, due sale riunioni identiche, due aree di angolo identiche, due grandi poster identici che coprono il campo di visualizzazione del dispositivo. In questi scenari, il dispositivo può, a volte, confondersi tra le parti identiche e contrassegnarle come la stessa nella relativa rappresentazione interna. Ciò può causare la visualizzazione degli ologrammi da alcune aree in altre posizioni. Il dispositivo può iniziare a perdere il rilevamento spesso perché la relativa rappresentazione interna dell'ambiente è stata danneggiata. In questo caso, è consigliabile reimpostare la comprensione ambientale del sistema. La reimpostazione della mappa comporta la perdita di tutti i posizionamenti di ancoraggio nello spazio. In questo modo il visore VR sarà in grado di tenere traccia delle aree uniche dell'ambiente. Tuttavia, il problema può verificarsi nuovamente se il dispositivo viene confuso tra le aree identiche.

Vedi anche