L'idea di base
I sistemi di tracciamento testa all'interno sono una nuova tecnologia incredibile. Ai loro punti di forza, sono quasi magici. Ma hanno anche le loro debolezze.
I sistemi di tracciamento della testa all'interno, come quelli in HoloLens, sono utili per indicare dove la testa è relativa alle funzionalità fisiche vicine. In modo equivalente, sono bravi a dire dove le caratteristiche del mondo reale 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 ha viaggiato la testa. 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, si sbaglierà di nuovo sulla distanza percorsa. Sarà impressionantemente vicino a corretto, ma evidentemente errato. Questo effetto viene anche definito "deriva".
Questi problemi sono descritti di più in questa 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 è indietro 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 accettare l'input dall'applicazione per sapere dove il punto B è relativo al punto A e correggere anche tale distanza percorsa.
Per comprendere meglio come gli strumenti di blocco globale risolvono questi problemi, sarà utile una terminologia aggiuntiva.
Spongy e spazi chiusi al mondo
Spazio spongy
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 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 di coordinate spongy nativo, poiché i dati dei sensori in ingresso affinano il loro stato.
Questo spazio spongy è l'unico sistema di coordinate precedentemente disponibile in cui lo sviluppatore dell'applicazione di realtà mista potrebbe funzionare.
Spazio bloccato del mondo
Dallo stato spongy, il motore World Locking Tools calcola uno spazio stabile, che allinea in modo ottimale lo spazio spongy 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 spongio che lo spazio bloccato al mondo sono sistemi di coordinate cartesiani rigidi, e di fatto differiscono l'uno dall'altro solo da una rotazione e uno scostamento. Tuttavia, la trasformazione dallo spazio spongy al mondo spazio bloccato cambia ogni fotogramma, man mano che vengono elaborati nuovi dati del sensore.
La differenza tra i due spazi è che, mentre i dati dei sensori in ingresso sono liberi di perfezionare (ovvero spostare) ancoraggi spaziali rispetto l'uno all'altro e la testa nello spazio spongy, 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 del 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 spongy originale, inserendo questa trasformazione "bloccata dal mondo da spongy" nella gerarchia della fotocamera stabilisce lo spazio radice della scena come spazio bloccato al 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 persistente 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 puntini di spaziatura per allineare la scena modellata a uno spazio fisico, le sessioni successive possono caricare automaticamente la scena modellata nello spazio fisico con funzionalità virtuali e reali allineate.
Per altre informazioni, vedere Funzionalità di persistenza e pin dello spazio.
implicazioni Fotocamera movimento
Una cosa sottile ma importante da notare qui è che, applicando la trasformazione di correzione alla fotocamera, il "frame fisso di riferimento" nativo di Unity è stato convertito nel frame di riferimento ottimale bloccato al mondo. Poiché non sono stati spostati oggetti nella scena, questa correzione non interferisce con la simulazione 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 posizionare 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 "funzionerà solo".
Per gli utenti che richiedono l'accesso diretto a sistemi di livello inferiore che non sono in grado di sfruttare i vantaggi di MRTK, vengono forniti esempi per la compilazione di adattatori. Di seguito sono elencati alcuni esempi: