Sistemi di coordinate
Al loro centro, le app di realtà mista posizionano gli ologrammi nel tuo mondo che sembrano e suonano oggetti reali. Questo implica esattamente il posizionamento e l'orientamento di tali ologrammi in luoghi significativi del mondo, sia che il mondo sia la loro stanza fisica o un regno virtuale creato. Windows offre vari sistemi di coordinate reali per esprimere la geometria, noti come sistemi di coordinate spaziali. È possibile usare questi sistemi per ragionare sulla posizione dell'ologramma, sull'orientamento, sul raggio dello sguardo fisso o sulle posizioni della mano.
Supporto di dispositivi
Funzionalità | HoloLens (prima generazione) | HoloLens 2 | Visori VR immersive |
Cornice di riferimento stazionaria | ✔️ | ✔️ | ✔️ |
Frame di riferimento associato | ✔️ | ✔️ | ✔️ |
Frame di fase di riferimento | Non ancora supportata | Non ancora supportata | ✔️ |
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, dai visualizzatori video a 360 gradi usando l'orientamento visore VR alle app e ai giochi su scala mondiale con mapping spaziale e ancoraggi nello spazio:
Scalabilità dell'esperienza | Requisiti | Esperienza di esempio |
---|---|---|
Solo orientamento | Orientamento dell'auricolare (allineato alla gravità) | Visualizzatore video a 360° |
Scala seduta | Sopra la posizione del visore VR in base alla posizione zero | Gioco da corsa o simulatore spaziale |
Scalabilità permanente | Sopra l'origine del piano di fase | Gioco d'azione in cui anatra e schivare sul posto |
Scala delle camere | Sopra i limiti di fase più poligono | Puzzle game dove si cammina intorno al puzzle |
Scalabilità mondiale | Ancoraggi nello spazio (e in genere mapping spaziale) | Gioco con i nemici provenienti dai tuoi veri muri, come RoboRaid |
L'esperienza si adatta sopra segue un modello di "bambole annidamento". Il principio di progettazione chiave per Windows Realtà mista è questo: un visore VR specifico supporta le app create per una scala dell'esperienza di destinazione e tutte le scale inferiori.
Rilevamento 6DOF | Piano definito | Tracciamento a 360° | Limiti definiti | Ancoraggi nello spazio | Esperienza massima |
---|---|---|---|---|---|
No | - | - | - | - | Solo orientamento |
Sì | No | - | - | - | Seduto |
Sì | Sì | No | - | - | In piedi - Avanti |
Sì | Sì | Sì | No | - | In piedi - 360° |
Sì | Sì | Sì | Sì | No | Camera |
Sì | Sì | Sì | Sì | Sì | Mondo |
Il frame stage di riferimento non è ancora supportato in HoloLens. Un'app su scala locale 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 cartesiani 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 valori delle coordinate in metri. Ciò significa che gli oggetti posizionati a parte due unità sull'asse X, Y o Z verranno visualizzati a distanza di due metri l'uno dall'altro quando ne 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 cartesiani sono definiti "destrorso" o "sinistrorso" 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 verso destra e l'asse Y positivo punta verso l'alto. La differenza tra i due è che nel sistema di coordinate destrorso, l'asse Z punta verso di te, mentre nel sistema di coordinate sinistrorso, l'asse Z punta lontano da te.
I sistemi di coordinate spaziali in Windows (e quindi, Windows Realtà mista) sono sempre di 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 orientamento o di sola seduta
La chiave per il rendering olografico sta modificando la visualizzazione dell'app degli ologrammi di ogni fotogramma mentre l'utente si sposta, in modo che corrisponda al movimento previsto della testa. È possibile creare esperienze in scala seduta che rispettano le modifiche alla posizione e all'orientamento della testa dell'utente usando un frame di riferimento fisso.
Alcuni contenuti devono ignorare gli aggiornamenti della posizione della testa, rimanendo fissi a un titolo scelto e a una distanza sempre dall'utente. L'esempio principale è video a 360 gradi: perché 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 mentre 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 di riferimento stazionario 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, ad esempio Unity, un frame di riferimento fisso è ciò che definisce l'"origine mondiale del motore". Gli oggetti posizionati in corrispondenza di una coordinata globale specifica usano la cornice di riferimento fissa 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 posizionare il contenuto in base all'origine, che si trova nella posizione iniziale e nell'orientamento dell'utente. Se l'utente si sposta in un nuovo posto e vuole continuare l'esperienza su larga scala, è possibile aggiornare l'origine mondiale 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 precedentemente creduto. 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 vagano 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 di riferimento associato
Un frame di riferimento associato 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 l'auricolare non riesce a 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 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 visualizzata nella home Realtà mista.
Creazione di un'esperienza su scala in piedi o su scala locale
Per andare oltre la scala seduto su un visore VR immersivo e creare un'esperienza su scala permanente, è possibile usare la cornice di scena 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 un visore VR immersivo, l'utente definisce una fase, che rappresenta la stanza in cui sperimenteranno la realtà mista. La fase definisce in modo minimo un'origine di fase, un sistema di coordinate spaziali centrato nella posizione del pavimento scelto dall'utente e l'orientamento in avanti in cui intende usare il dispositivo. Posizionando il contenuto in questo sistema di coordinate di fase sul piano Y=0, è possibile assicurarsi che gli ologrammi vengano visualizzati comodamente sul pavimento quando l'utente si trova in piedi, fornendo agli utenti un'esperienza su scala permanente.
Limiti di fase
L'utente può anche definire i limiti di fase, un'area all'interno della stanza che è stata cancellata per spostarsi in realtà mista. In tal caso, l'app può creare un'esperienza su scala locale, usando questi limiti per assicurarsi che gli ologrammi siano sempre posizionati dove l'utente può raggiungerli.
Poiché il frame di fase di riferimento fornisce un unico sistema di coordinate fisso all'interno del quale posizionare il contenuto relativo al pavimento, è il percorso più semplice per la conversione di applicazioni su scala permanente e su scala locale sviluppate per visori VR di realtà virtuale. Tuttavia, come con 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 causano il contenuto lontano dal centro per spostarsi notevolmente man mano che il sistema si regola. Per andare oltre 5 metri, sono necessari ancoraggi nello spazio.
Creazione di un'esperienza su scala mondiale
HoloLens consente 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é un singolo sistema di coordinate rigido non può essere utilizzato 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 in cui tutte le altre coordinate possono mappare in modo 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 trasformazioni relative 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 locale oggi stabiliscono in genere questo tipo di sistema di coordinate assoluto a scala di stanza con la sua origine sul pavimento.
Al contrario, un dispositivo di realtà mista senzathering, ad esempio HoloLens, ha una comprensione dinamica basata sui 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 rigido, questi ologrammi sarebbero necessariamente derivati 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 di fatto a 3,9 metri di distanza. Se questi ologrammi fossero stati inizialmente posizionati a 4 metri di distanza in un unico sistema di coordinate rigido, uno di essi apparirebbe sempre 0,1 metri dal mondo reale.
Ancoraggi nello spazio
Windows Realtà mista 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 nello spazio 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 l'ologramma in base all'ancoraggio spaziale, è possibile garantire la stabilità ottimale dell'ologramma, 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 nello spazio e dai fotogrammi fissi di riferimento:
Gli ologrammi posizionati nella cornice di riferimento fissa 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.
Gli ologrammi posizionati nella cornice di riferimento della fase mantengono anche una relazione rigida l'una con l'altra. A differenza del telaio fisso, il telaio di scena rimane sempre fisso in base all'origine fisica definita. Tuttavia, il contenuto di cui viene eseguito il rendering nel sistema di coordinate della fase oltre il limite di 5 metri verrà visualizzato solo stabile mentre l'utente si trova all'interno di tale limite.
Gli ologrammi posizionati usando un ancoraggio spaziale possono derivare in base agli ologrammi posizionati usando un altro ancoraggio spaziale. Ciò consente a Windows di 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 per la stabilità vicino all'utente, la cornice di fase di riferimento e ancoraggi nello spazio garantisce 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 subiranno effetti di braccio a leva sempre più gravi. Ciò è dovuto al fatto che 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 entro circa 3 metri dall'origine. Per un'origine della fase nelle vicinanze, il rendering di contenuto distante è OK, poiché qualsiasi errore posizionale maggiore influirà solo su ologrammi di piccole dimensioni che non si spostano 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 di nuovo in un secondo momento, salvandoli nell'archivio di ancoraggi nello spazio dell'app. Quando si salva o si carica un ancoraggio, si fornisce una chiave stringa significativa per l'app per identificare l'ancoraggio in un secondo momento. Si consideri questa chiave come il nome file per l'ancoraggio. Se vuoi associare altri dati a tale ancoraggio, ad esempio un modello 3D che l'utente ha inserito in tale posizione, salvalo nella risorsa di archiviazione locale dell'app e associalo alla chiave scelta.
Salvando in modo permanente gli 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 dove si aspettano, su molti usi dell'app.
Evitare il contenuto bloccato a testa
È consigliabile eseguire il rendering del contenuto bloccato a testa, che rimane in 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 con blocco head deve in genere essere sostituito con ologrammi collegati all'utente o inseriti nel mondo stesso. Ad esempio, i cursori devono essere in genere spostati nel mondo, ridimensionando naturalmente per riflettere la posizione e la distanza dell'oggetto sotto lo sguardo fisso dell'utente.
Gestione degli errori di rilevamento
In alcuni ambienti come corridoi scuri, potrebbe non essere possibile per un visore VR utilizzando 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. Vengono ora illustrate le condizioni in cui ciò può verificarsi, il suo impatto sull'esperienza utente e i suggerimenti per gestire al 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ò può verificarsi 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 sua posizione con una precisione sufficiente per il rendering degli ologrammi bloccati dal mondo. Non è possibile capire dove si basa un ancoraggio spaziale, una cornice fissa o una cornice di scena sul dispositivo. Tuttavia, è comunque possibile eseguire il rendering del contenuto bloccato dal corpo nel frame di riferimento associato.
L'app dovrebbe indicare all'utente come recuperare il tracciamento posizionale, visualizzando alcuni contenuti bloccati dal corpo di fallback che descrivono alcuni suggerimenti, ad esempio scoprire i sensori e accendere più luci.
Il visore VR tiene traccia erroneamente a causa di modifiche dinamiche nell'ambiente
Il dispositivo non è in grado di tenere traccia correttamente se ci sono molte modifiche dinamiche nell'ambiente, ad esempio molte persone che camminano in camera. In questo caso, gli ologrammi possono sembrare saltare o derivare mentre 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, appesi a parete e così via, è stato spostato, è possibile che alcuni ologrammi possano apparire spostati dalle loro posizioni originali. Gli ologrammi precedenti possono anche spostarsi mentre 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 d'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 verrà monitorato bene nelle aree uniche dell'ambiente. Tuttavia, il problema può verificarsi di nuovo se il dispositivo viene confuso tra le aree identiche.