Вы находитесь на странице: 1из 4

Mixed reality (MR), sometimes referred to as hybrid reality,[1] is the merging of

real and virtual worlds to produce new environments and visualizations where
physical and digital objects co-exist and interact in real time. Mixed reality
takes place not only in the physical world or the virtual world,[1] but is a mix of
reality and virtual reality, encompassing both augmented reality and augmented
virtuality[2] via immersive technology.

The definitions in the modern contemporary economy makes the distinction between
VR, AR and MR very clear:[4]

Virtual reality (VR) immerses users in a fully artificial digital environment.


Augmented reality (AR) overlays virtual objects on the real-world environment.
Mixed reality (MR) not just overlays but anchors virtual objects to the real
world and allows the user to interact with the virtual objects.

Most augmented reality and virtual reality offerings available today represent a
very small part of this spectrum. They are, however, subsets of the larger mixed
reality spectrum. Windows 10 is built with the entire spectrum in mind, and allows
blending digital representations of people, places and things with the real world.

HoloLens lets you create holograms, objects made of light and sound that appear in
the world around you, just as if they were real objects. Holograms respond to your
gaze, gestures and voice commands, and can interact with real-world surfaces around
you. With holograms, you can create digital objects that are part of your world.

https://docs.microsoft.com/en-us/windows/mixed-reality/hologram

Il dispositivo possiede un'unità di misura inerziale (Inertial Measurament Unit -


IMU) la quale include accelerometro, giroscopio e magnetometro, quattro sensori di
"enviroment understanding", una fotocamera di profondità con un angolo di vista di
$120^{\circ}\times120^{\circ}$, una fotocamera RGB, un array di quattro microfoni
ed infine un sensore di luce ambientale.

Oltre ad una CPU e GPU montati su un SoC prodotto da Intel, gli HoloLens contengono
anche un coprocessore (Holographic Processing Unit - HPU) sviluppato appositamente
per il processing degli ologrammi. A livello di specifiche tecniche, sia il SoC che
l'HPU hanno 1GB LPDDR3 (DDR3 Low Power pensate per il mobile) a testa, e
condividono 8MB di SRAM

Lo spazio a disposizione, controllato dal SoC, è di 64GB. L'HPU contiene 28 DSP


progettati appositamente per processare ed integrare i dati dai sensori (Spatial
Mapping, riconoscimento dei gesti, della voce e del parlato). La connettività è
basata su Wi-Fi e Bluetooth.

Per posizionare gli ologrammi nel mondo reale è necessario identificare un sistema
di riferimento adeguato. Normalmente un'applicazione 3D utilizza un sistema di
coordinate cartesiane, ragionando in funzione della posizione e dell'orientamento
degli oggetti nel mondo virtuale che viene renderizzato (secondo gli assi X, Y e
Z). Nella mixed reality vengono usate sia coordinate fisiche che virtuali. Un
sistema di coordinate avente un reale significato nel mondo fisico viene definito
un \textbf{sistema di coordinate spaziali}.

Il sistema di coordinate fornito da un frame di riferimento stazionario cerca di


mantenere le posizioni degli oggetti vicini all'utente il più stabile possibile
rispetto al mondo, prendendo in considerazione anche i cambiamenti nella posizione
della testa dell'utente.
Per esperienze seated-scale in un'engine come Unity, un frame di riferimento
stazionario è quello che viene definito \textbf{world origin}. Gli oggetti
posizionati a specifiche coordinate del mondo usano il frame di riferimento
stazionario per definire la loro posizione nel mondo reale. Contenuti che rimangono
fermi nel mondo anche se l'utente si muove sono detti \textbf{world-locked}.

Un frame di riferimento attaccato si muove con l'utente quando questo cammina.


L'utente può guardare attorno al contenuto piazzato nel frame di riferimento, il
contenuto renderizzato in questo modo è detto \textbf{body-locked}.

Uno dei punti di forza della tecnologia HoloLens sta nel fatto di poter
implementare un vero sistema di esperienza world-scale per la mixed reality, ovvero
la possibilità di visualizzare e gestire l'esperienza oltre i 5 metri, il limite
massimo per applicazioni room-scale o standing-scale.

Oggi l'approccio adottato nella realizzazione di applicazioni virtuali è


quello di stabilire un sistema di coordinate assolute nel mondo a cui tutte le
altre coordinate possono fare riferimento. In questo ambiente, si può sempre
trovare una trasformata stabile che definisce la relazione tra due oggetti nel
mondo. Se non si muovono quegli oggetti, la loro trasformata relativa rimarrà
sempre la stessa. Questo va bene per renderizzare mondi puramente virtuali dove si
conosce la geometria in anticipo.

Un device come gli HoloLens ha invece una conoscenza del mondo dinamica,
grazie ai sensori che continuano ad aggiornare i dati provenienti dall'ambiente. In
un'esperienza world-scale, se tutti gli ologrammi venissero piazzati in un singolo
sistema di coordinate rigido, questi ologrammi andrebbero alla deriva nel tempo
(ovvero si muoverebbero in maniera non programmata e con risultati imprevisti).

Gli ancoraggi spaziali nascono per risolvere questa tipologia di problema, e


permettere un'esperienza world-scale. Si tratta di marcare dei punti considerati
"importanti" nel mondo in cui l'utente ha piazzato degli ologrammi. È importante
tener traccia nel tempo di questi ancoraggi.
Il modo corretto per farlo è quello di aggiustare la posizione degli
ancoraggi tra loro, in modo da assicurare che ogni ancoraggio sia esattamente dove
è stato messo relativamente al mondo reale. Gli ologrammi dovranno quindi essere
piazzati rispetto ad un ancoraggio.

Il continuo aggiornamento e aggiustamento degli ancoraggi tra di loro è la


differenza chiave tra il sistema di coordinate derivato dagli ancoraggi spaziali e
i frame stazionari:
\begin{itemize}
\item Gli ologrammi che stanno in un frame stazionario mantengono tutti
una relazione rigida tra loro. Tuttavia, mentre l'utente percorre lunghe distanze,
il sistema di coordinate di quel frame potrebbe spostarsi rispetto al mondo per
garantire che gli ologrammi accanto all'utente risultino stabili.
\item Per ciò che riguarda gli stage frame (ovvero i frame relativi ad
una stanza, per un'esperienza room-scale) gli ologrammi hanno relazioni rigide tra
loro, ma rispetto ai frame stazionari, lo stage frame rimane sempre fisso rispetto
all'origine fisica definita. Tuttavia, il contenuto visualizzato nel sistema di
coordinate dello stage oltre il suo limite di 5 metri apparirà stabile solo mentre
l'utente si trova all'interno di tale limite.
\item Gli ologrammi posizionati usando un ancoraggio spaziale possono
spostarsi rispetto agli ologrammi posizionati usando un altro ancoraggio spaziale.
Ciò consente a Windows di migliorare la sua comprensione della posizione di ciascun
ancoraggio spaziale. %, anche se, per esempio, un ancoraggio deve essere aggiustato
a sinistra e un'altro ancoraggio deve adattarsi a destra.
\end{itemize}

I frame stazionari cercando sempre di ottimizzare la stabilità in prossimità


dell'utente, gli stage frame e gli ancoraggi spaziali invece assicurano stabilità
intorno al proprio punto di origine. Questo aiuta gli ologrammi a mantenere la
posizione corretta nel tempo, ma significa anche che gli ologrammi renderizzati
troppo distanti dall'origine del loro sistema di coordinate subiranno un effetto
lever-arm piuttosto rilevante. Questo avviene perché i piccoli aggiustamenti sulla
posizione e l'orientamento dello stage o dell'ancoraggio sono crescenti
proporzionalmente alla distanza dal punto di ancoraggio.

Una buona regola è assicurarsi che qualsiasi oggetto venga renderizzato in


base al sistema di riferimento di un ancoraggio spaziale distante si mantenga entro
i 3 metri dalla sua origine. Per l'origine di uno stage vicino, il rendering di
contenuti distanti non presenta problemi, in quanto qualsiasi errore incrementale
di posizione influirà solo su piccoli ologrammi che non si sposteranno molto nella
vista dell'utente.

Un'applicazione può anche condividere degli ancoraggi spaziali con altri


dispositivi. Trasferendo un ancoraggio spaziale insieme alla sua comprensione di
supporto dell'ambiente e dei dati dei sensori attorno ad esso da un HoloLens
all'altro, entrambi i dispositivi potranno lavorare sulla stessa posizione: facendo
sì che ogni dispositivo mostri un ologramma usando l'ancoraggio spaziale condiviso,
entrambi gli utenti vedranno l'ologramma apparire nello stesso posto nel mondo
reale.

Il gaze è il sistema di input primario, permette di capire l'intenzione


dell'utente e dove è il suo focus nel mondo. Il vettore del gaze è determinato
usando la posizione e l'orientamento della testa, non degli occhi. Si può pensare
ad esso come un puntatore laser che si può intersecare sia con gli ologrammi che
con la mesh originata dallo spatial mapping per determinare quale oggetto reale o
virtuale l'utente sta osservando.

Spatial mapping provides a detailed representation of real-world surfaces in


the environment around the HoloLens, allowing developers to create a convincing
mixed reality experience. By merging the real world with the virtual world, an
application can make holograms seem real. Applications can also more naturally
align with user expectations by providing familiar real-world behaviors and
interactions.

È necessario fornire uno o più volumi spaziali per definire le regioni di


interesse in cui l'applicazione desidera ricevere i dati di mappatura spaziale. Un
volume spaziale è semplicemente una forma che definisce una regione dello spazio,
come una sfera o un cubo.
Si utilizza un volume spaziale con un sistema di coordinate spaziali
globali (world-locked) per identificare una regione fissa del mondo fisico.
Si può utilizzare un volume spaziale, aggiornato ogni fotogramma con un
sistema di coordinate spaziali body-locked, per identificare una regione di spazio
che si muove (ma non ruota) con l'utente.
Questi volumi spaziali possono essere modificati in qualsiasi momento,
poiché lo stato dell'applicazione o dell'utente cambia.

Microsoft nel suo \textbf{MixedRealityToolkit} fornisce una libreria per lo spatial


processing, ovvero per "lavorare" i dati grezzi ottenuti dalla fase di mapping. Le
operazioni principali da compiere sono individuazione delle superfici piane e
rimozione dei vertici.

Вам также может понравиться