L'idea di base

I sistemi di tracciamento testa all'interno sono una nuova tecnologia straordinaria. Ai loro punti di forza, sono quasi magici. Ma hanno anche le loro debolezze.

I sistemi di tracciamento head all'interno, come quelli di HoloLens, sono buoni per indicare dove la testa è relativa alle funzionalità fisiche nelle vicinanze. Analogamente, sono bravi a dire dove le caratteristiche reali sono relative alla testa.

Ma non sono buoni a dire dove la testa è relativa a dove era la testa. Quando la testa si sposta dal punto A al punto B, il sistema di tracciamento in genere sarà leggermente sbagliato per quanto lontano la testa ha viaggiato. Ciò significa che il sistema di rilevamento non sarà corretto circa la distanza tra i punti A e B. Questo effetto è spesso e confusamente chiamato "problema di scalabilità".

Quindi, quando la testa viaggia dal punto B al punto A, sarà di nuovo sbagliato circa la distanza percorsa. Sarà impressionantemente vicino a corretto, ma evidentemente errato. Questo effetto è detto anche "deriva".

Questi problemi sono descritti di più in queste domande frequenti.

Il punto è che gli strumenti di blocco globale possono risolvere questi problemi. In quest'ultimo caso, di deriva, gli strumenti di blocco globale possono riconoscere che la testa è tornata vicino al punto A, dalle caratteristiche fisiche intorno al punto A e correggere le coordinate della testa.

Nel caso precedente, del problema di scalabilità, gli strumenti di blocco globale possono prendere input dall'applicazione per sapere dove il punto B è relativo al punto A e correggere anche la distanza percorsa.

Per comprendere meglio come gli strumenti di blocco globale risolvono questi problemi, sarà utile una terminologia aggiuntiva.

Spazi spongi e mondo bloccati

Spazio spugnoso

Al centro di World Locking Tools è un motore di ottimizzazione. Accetta come input un grafico di ancoraggi nello spazio attualmente attivi nel mondo, insieme alle informazioni correnti sul tracciamento della testa. Questo input viene comunemente definito, all'interno di questa documentazione e del codice correlato, come stato Spongy. Lo stato spongio è così denominato perché è costantemente in flusso. Gli ancoraggi nello spazio sono sempre in movimento rispetto all'altro e all'interno dello spazio delle coordinate spongy native, poiché i dati dei sensori in ingresso affinano il proprio stato.

Questo spazio spongy è l'unico sistema di coordinate disponibile in precedenza in cui lo sviluppatore dell'applicazione di realtà mista potrebbe funzionare.

Spazio bloccato nel mondo

Dallo stato spugnoso, il motore Strumenti di blocco globale calcola uno spazio stabile, che allinea in modo ottimale lo spazio spugnoso al mondo fisico. Questo spazio stabile viene definito Spazio bloccato globale e lo stato completo come stato bloccato.

È importante rendersi conto che sia lo spazio spugnoso che lo spazio bloccato nel mondo sono sistemi di coordinate cartesiani rigidi, e infatti differiscono l'uno dall'altro solo da una rotazione e uno scostamento. Tuttavia, la trasformazione dallo spazio spugnoso allo spazio bloccato globale cambia ogni fotogramma, man mano che vengono elaborati nuovi dati del sensore.

La differenza tra i due spazi è che, mentre i dati del sensore in ingresso sono liberi di perfezionare (ovvero spostare) ancoraggi spaziali l'uno rispetto all'altro e la testa nello spazio spugnoso, lo spazio bloccato del mondo viene scelto per ridurre al minimo tali movimenti. Questa differenza consente agli oggetti scena posizionati nello spazio bloccato del mondo di apparire fissi nel mondo fisico senza essere collegati a singoli ancoraggi nello spazio. Ogni frame del motore calcola lo spazio bloccato del mondo in cui gli ancoraggi sottostanti sono più stabili. Ovvero, lo spazio bloccato nel mondo in cui gli oggetti virtuali rimangono allineati in modo ottimale alle funzionalità del mondo reale.

Questa trasformazione viene applicata alla scena ogni fotogramma regolando la trasformazione locale di un elemento padre della fotocamera nel grafico della scena. Poiché la fotocamera definisce lo spazio spugnoso originale, l'inserimento di questa trasformazione "bloccata da spongy" nella gerarchia della fotocamera stabilisce lo spazio radice della scena come spazio bloccato dal mondo.

Persistenza

Facoltativamente, lo stato bloccato può essere salvato in modo permanente tra le sessioni. Sono disponibili controlli manuali per salvare lo stato corrente e per il caricamento da uno stato salvato. Inoltre, i flag in World Locking Tools Manager abilitano o disabilitano il salvataggio periodico automatico dello stato bloccato e il caricamento automatico dell'ultimo stato salvato all'avvio.

L'uso di queste funzionalità consente l'analisi e la stabilizzazione di uno spazio reale per rendere persistenti più sessioni.

Inoltre, se la funzionalità Segnaposto spazio viene usata per allineare lo spazio di modellazione allo spazio reale, tale allineamento può essere mantenuto. In tal caso, dopo una sessione di allineamento iniziale per configurare i segnaposto spazio per allineare la scena modellata a uno spazio fisico, le sessioni successive possono caricare automaticamente la scena modellata nello spazio fisico con caratteristiche virtuali e reali allineate.

Per altre informazioni, vedere Funzionalità di persistenza e blocco dello spazio.

Implicazioni per lo spostamento della fotocamera

Una cosa sottile ma importante da notare qui è che, applicando la trasformazione di correzione alla fotocamera, il "fotogramma fisso di riferimento" nativo di Unity è stato convertito nel fotogramma di riferimento ottimale bloccato al mondo. Poiché non sono stati spostati oggetti nella scena, questa correzione non interferisce con la simulazione della fisica o altri calcoli dinamici.

Tuttavia, la fotocamera spostata all'interno del fotogramma fisso di riferimento ha implicazioni. In particolare, tutti i sottosistemi, che presuppongono che la trasformazione head sia l'unica trasformazione tra il fotogramma fisso di riferimento e lo spazio della fotocamera, non sarà corretta.

Questo errore in genere non è un problema, in quanto tali funzionalità come il teletrasporto si basano già sulla possibilità di inserire una trasformazione tra la fotocamera e lo spazio radice.

Inoltre, MRTK già fattori nella necessità di tali trasformazioni, quindi per gli utenti dei servizi MRTK questo "funziona solo".

Per gli utenti che richiedono l'accesso diretto a sistemi di livello inferiore che non riescono a sfruttare MRTK, vengono forniti esempi per la compilazione di schede. Di seguito sono elencati alcuni esempi di questo tipo:

Vedi anche