Dopo che Facebook fa "all in" sulla scommessa Metaverso, è doveroso chiedersi perchè questa volta potrebbe funzionare, dopo anni di tentativi e miliardi di dollari letteralmente sperperati nel tentativo di rendere la realtà virtuale una scommessa vincente; sono praticamente 20 anni che ciclicamente viene riproposto il dilemma, con qualche novità che sembra finalmente far pendere la bilancia verso il successo, ma puntualmente e quasi inesorabilmente il risultato è un fallimento; perchè allora questa volta potrebbe funzionare?

Secondo noi perchè finalmente si sono risolti i 3 problemi principali:

 

1) Hardware

Creare mondi alternativi ha il suo scotto da pagare in termini hardware; creare un mondo, farlo in modo approfondito e realistico e renderlo solidale con lo spettatore significa spremere davvero a fondo le risorse hardware che devono poter coniugare potenza e dotazioni hardware adeguate anche negli aspetti secondari come ombre, luci, colori e suoni tutti fattori che contribuiscono in modo fondamentale al realismo.

2) Comodità e semplicità d'uso

Tra le principali cause di fallimento abbiamo sempre una costante; i dispositivi (caschi, occhialini, ecc) devono essere comodi, ergonomici, piacevoli da portare; si contano decine di tentativi falliti a causa del fatto che i dispositivi erano scomodi, pesanti e in alcuni casi davano problemi alla vista (nausea, vertigini, in alcuni casi anche attacchi convulsivi); rendere la realtà virtuale un elemento naturale è difficilissimo perchè il nostro cervello deve ricevere i corretti impulsi visivi con la giusta spazialità; qualunque risultato che si discosti in qualche modo da quello che si attende il cervello generà una reazione che potrebbe anche sfociare in un tilt nervoso.

3) Prezzo

Non è assolutamente facile coniugare i punti 1 e 2 collocandoli in una fascia di prezzo accessibile per le tasche di molti utenti; in sostanza bisogna fornire il tutto ad un prezzo che non sia la vendita di un rene; qualunque deroga in questo senso porterà al fallimento.

Ora la scommessa multiverso sembra rilanciare decisamente il discorso e la nostra recente prova dei dispositivi Oculus sembrerebbe confermare che finalmente ci siamo; abbiamo almeno il sostegno hardware adeguato per non fare naufragare prematuramente il discorso.
La scommessa potrà dirsi vinta se o contenuti si riveleranno all'altezza.

4) Contenuti

Immaginate di essere in una bellissima isoletta; impiegate del tempo per esplorarla, vi rendete conto che è bellissima e rimanete piacevolmente sorpreso delle bellezze che avete a disposizione, ma fatalmente ad un certo punto vi chiedete ed ora che faccio? Qual è in sostanza il labile confine tra l'essere un turista felice ed essere un preoccupato naufrago modello Robinson Crusoè? Nel caso della realtà virtuale la differenza la fanno i contenuti; se mancano quelli il progetto è destinato immancabilmente e inesorabilmente al fallimento.

Riproponiamo un famosissimo articolo scritto da Gabriele Pellegrinetti che è stato ispirazione e modello di riferimento per moltissime tesi universitarie.

Introduzione alla Realtà Virtuale

Lo scopo della realtà virtuale (VR) è quello di ricreare, tramite un computer, mondi e oggetti che sono la trasposizione digitale di ambienti reali o di fantasia.
Inoltre, studia i metodi di interazione tra l'utente e in mondo reale come i sistemi di navigazione, gli strumenti per la visione tridimensionale, i tool per la manipolazione degli oggetti virtuali, etc.
Si tratta di una simulazione che viene percepita totalmente dai nostri sensi, in particolare dalla vista, seguita dall’udito e dal tatto.

Differenza fra realtà virtuale e computer grafica

Nella tradizionale elaborazione, o nella creazione, digitale delle immagini si da molto peso alla qualità visiva dei risultati.
I programmi di rendering e di ray tracing impiegano ore, se non giorni, per elaborare una singola immagine.
L’utilizzo di più fotogrammi permette di creare quelle stupende animazioni che possiamo ammirare negli effetti speciali dei films, nei videogiochi e nelle pubblicità.
Nella realtà virtuale, le immagini non sono calcolate in precedenza ma vengono generate in tempo reale.
Per ottenere un effetto sufficientemente fluido, è necessario visualizzare almeno 25 fotogrammi al secondo; in caso contrario, i movimenti nel mondo virtuale risultano essere imprecisi e a scatti.
Per questo motivo, la qualità delle immagini è lontana dalla qualità fotografica ottenuta con le tecniche di animazione digitale.
Gli oggetti vengono rappresentati con poligoni sui quali, se necessario, vengono applicate delle texture per la simulazione dei materiali.
Un’altra differenza, non meno importante della precedente, è data dal meccanismo di interazione con l’utente.
Nelle animazioni tradizionali, egli può decidere quale parte della sequenza di fotogrammi visualizzare, può spostarsi in avanti, ritornare all’inizio, decidere la velocità di scorrimento, ma ciò che vede è quello che è stato programmato in precedenza. Nella realtà virtuale, è l’utente che decide ciò che vuole vedere, può scegliere il punto di vista a lui più congeniale, può posizionarsi in un qualsiasi punto dello spazio, può selezionare un oggetto, ruotarlo, cambiarne le dimensioni, i colori, e, se abilitato, può interagire con tutto l’ambiente circostante. I vantaggi della realtà virtuale si scontrano con la necessità di generare almeno 20-25 fotogrammi al secondo in modo da ottenere animazioni fluide e prive di scatti.
Oggi disponiamo di hardware potente e di schede grafiche accelerate che consentono la generazione di grafica tridimensionale di buona qualità a costi abbordabili da quasi tutti gli utenti.
Fino a qualche anno fa, per contenere i costi, i produttori di tool per lo sviluppo di ambienti virtuali, limitavano la dimensione dei quadri video a 320x200 o al più a 640x480 pixel.
Oggi, con l'ausiglio di schede grafiche con tecnologia 3D si arriva tranquillamente a 1280x1024 pixel e anche oltre.

Modalità di rappresentazione degli oggetti

Gli oggetti visualizzati sullo schermo da un’applicazione di realtà virtuale sono oggetti tridimensionali.
Gli elementi di partenza hanno coordinate tridimensionali ma vengono tracciati su un piano bidimensionale.
Ogni punto dell’oggetto da disegnare, identificabile dalle coordinate (x, y, z), viene mappato su un punto (a, b) nel piano bidimensionale dello schermo.
Le tre tecniche fondamentali per la rappresentazione di oggetti tridimensionali su un piano bidimensionale sono la proiezione, l'assonometria e la prospettiva.

Le proiezioni ortogonali

Si fanno assumere alle coordinate bidimensionali dello schermo solamente due delle coordinate tridimensionali dell’oggetto; si elimina quindi una delle tre coordinate spaziali.
Si ottengono tre tipi di proiezione:

  1. piano orizzontale: quando si elimina la coordinata z;
  2. piano verticale: quando si elimina la coordinata x;
  3. piano laterale: quando si elimina la coordinata y.

L’assonometria

Nell’assonometria l’osservatore vede l’oggetto da un punto a distanza infinita da una posizione qualsiasi dello spazio caratterizzata da due angoli: la latitudine alfa e la longitudine beta.
La vista che si ottiene non è realistica in quanto le dimensioni degli oggetti che si vedono non vengono sfalsate con il variare della distanza.
Sia (x, y, z) il punto nello spazio tridimensionale.

Il punto (a, b) ad esso corrispondente sul piano dello schermo è dato dalle seguenti formule:

a = -x * cos(alfa) + y * cos(beta) b = x * sin(alfa) + y * sin(beta) + z

La prospettiva

La prospettiva consente una visione più realistica rispetto all’assonometria.

Essa tiene conto della variazione delle dimensioni apparenti degli oggetti con il variare della distanza fra questi e l’osservatore.

Siano:

E la distanza fra l’osservatore e il piano del disegno;

G la distanza tra l’osservatore e l’oggetto disegnato;

(x, y, z) il punto nello spazio tridimensionale;

alfa la longitudine dell’osservatore;  beta la latitudine dell’osservatore.
Il punto corrispondente (a, b) nello spazio bidimensionale è dato dalle seguenti formule:

x1 = -x * cos(alfa) * cos(beta) + y * sin(beta) - Z * sin(alfa) * cos(beta) y1 = -x * sin(alfa) + z * cos(beta) z1 = -x * cos(alfa) * sin(beta) + y * cos(beta) - Z * sin(alfa) * sin(beta) + G a = E * (x1/z1) + 1 b = -E * (y1/z1) + 1

I tool di realtà virtuale, anche se con qualche variante, utilizzano la prospettiva per visualizzare le immagini. Le tecnologie per la visione tridimensionale

Esistono due tipi di realtà virtuale: la realtà virtuale immersiva e la realtà virtuale non immersiva.

Immersione significa interazione completa con l’ambiente virtuale. È quindi necessario supportare tutti i nostri sensi, non solo la vista, l’udito e il tatto ma anche quelli che non siamo abituati a prendere in considerazione come l’orientamento.

La realtà virtuale immersiva utilizza visori montati in prossimità degli occhi, sensori di posizione in grado di fornire l’indicazione dell’orientamento del punto di vista dell’utente, guanti dotati di sensori per manipolare gli oggetti virtuali e per simulare sensazioni tattili artificiali.

Perché vediamo in tre dimensioni

L’occhio umano è formato da diverse parti l’insieme delle quali può essere paragonato, per funzionalità, alle componenti di una macchina fotografica.

La pupilla mette a fuoco l’immagine.
Questa, passando attraverso il cristallino, viene proiettata sulla retina.
Successivamente, l’immagine viene trasferita al cervello attraverso il nervo ottico. Essendo i due occhi distanziati di circa 7-8 cm, l’immagine prodotta dall’occhio sinistro risulta leggermente sfalsata rispetto a quella prodotta dall’occhio destro.

Quando il cervello deve ricomporre l’immagine originale partendo da quelle prodotte dai due occhi è in grado, grazie allo sfasamento dovuto alla distanza interpupillare, di dare profondità agli oggetti. Su questo principio si basano i meccanismi per la visione stereoscopica.

Occhiali stereoscopici a lenti colorate o polarizzate

È possibile ottenere una visione tridimensionale fotografando un oggetto due volte con una posizione orizzontale sfasata di 7-8 cm utilizzando per le due immagini due filtri con colori complementari (esempio rosso e blu). Le due fotografie vengono poi fuse insieme ottenendo una foto tridimensionale visualizzabile con degli occhiali aventi una lente per colore. L’utilizzo di questa tecnica produce risultati scadenti con immagini a colori. Per ovviare a questo problema è possibile sostituire ai filtri e alle lenti colorate dei filtri e delle lenti polarizzate (ad esempio una lente con polarizzazione orizzontale e una con polarizzazione verticale).

Occhiali stereoscopici ad otturatori

Servono per ottenere una visualizzazione stereoscopica utilizzando solamente lo schermo del computer. La visualizzazione stereoscopica è possibile grazie alla visualizzazione contemporanea di due immagini, una per occhio. Gli occhiali ad otturatori montano, al posto delle lenti, dei filtri a cristalli liquidi che, se polarizzati correttamente, diventano completamente neri impedendo all’occhio di vedere attraverso essi.
Le immagini vengono mostrate in sequenza sullo schermo alternando ripetutamente i frame destinati all’occhio destro con quelli destinati all’occhio sinistro.
In contemporanea viene inviato un segnale agli occhiali in modo da oscurare l’occhio non interessato dall’immagine presente sullo schermo; questo implica la necessità di utilizzare macchine molto veloci, in quanto per ottenere i 25 fotogrammi al secondo è necessario visualizzare nello stesso periodo di tempo 50 immagini (25 per ogni occhio).
Il vantaggio di questa tecnologia è rappresentato dall’alta definizione grafica ottenibile dipendente solamente dalla velocità del sistema di elaborazione.

Gli HMD (Head Mounted Display) sono caschi che contengono dei display per la visualizzazione delle immagini.
Al loro interno sono pure integrate delle cuffie stereofoniche di alta qualità per permettere l’utilizzo di audio tridimensionale.
Le tecniche usate per visualizzare le immagine in un HMD variano a seconda del tipo di prodotto e in base al costo sostenuto per la sua costruzione. Gli HMD possono essere stereoscopici, quando esiste un visore diverso per ogni occhio, o monoscopici, quando entrambe gli occhi visualizzano la stessa immagine presente su un singolo display.
Gli HMD di costo medio utilizzano dei mini schermi a cristalli liquidi . I sistemi di costo minore utilizzano display con risoluzione massima di 320x240 pixel. Il numero massimo di colori supportato dall’attuale tecnologia parte da 256, ed arrivano oramai a 16 milioni di colori. Purtroppo il processo di miniaturizzazione (ogni display ha una diagonale di circa 3 pollici) è molto costoso motivo per cui cui gli HMD di elevatissima qualità sono ancora allo stadio di prototipo e utilizzati solamente in applicazioni critiche (ad esempio simulazioni militari). Il vantaggio dell’utilizzo di display a cristalli liquidi è dato dalle ridotte dimensioni degli HMD che li montano, dal basso voltaggio di esercizio e dal fatto che essi non emettono radiazioni elettromagnetiche.
Gli HMD che offrono una risoluzione maggiore con una gamma cromatica superiore utilizzano dei piccoli monitor simili a quelli montati sulle telecamere amatoriali.
Questi display sono in bianco e nero in quanto la tecnologia attuale non consente la costruzione di schermi a colori di dimensioni ridotte. Per ottenere una visualizzazione policromatica si fa uso di filtri colorati (rossi, verdi e blu). Il sistema invia al display in sequenza le immagini corrispondenti alla componente rossa, a quella blu e a quella verde e, in contemporanea, attiva i relativi filtri. Il risultato è identico a quello che si otterrebbe utilizzando dei display a colori. I vantaggi di una tale tecnologia sono rappresentati dall’alta qualità ottenibile; gli svantaggi sono dati dalle grandi dimensioni degli HMD, dall’emissione di radiazioni elettromagnetiche e dall’alto voltaggio necessario al funzionamento dei tubi catodici (nell’ordine dei 12000-20000 volts). Sono allo studio nuovi sistemi che, mediante l’utilizzo di laser a bassa potenza, sono in grado di disegnare le immagini direttamente sulla retina dell’occhio. Esistono in commercio dei display di questo tipo in grado di visualizzare risoluzioni di 720x256 pixel in monocromatico (colore rosso).
Si pensa di riuscire, nell’arco dei prossimi cinque anni, a produrre dei device in grado di visualizzare 4000x4000 pixel (la risoluzione delle pellicole cinematografiche) in true color.

Le tecnologie di tracciamento e di manipolazione

Il movimento in uno spazio tridimensionale può avvenire in tre direzioni:

  • asse x (orizzontale)
  • asse y (profondità)
  • asse z (verticale).

È pure possibile eseguire una rotazione su ognuno dei tre assi. I movimenti possibili sono quindi sei (tre di traslazione e tre di rotazione).
Si dice che in un ambiente tridimensionale ci sono sei gradi di libertà. Per ottenere un valido livello di interazione con l’utente, in luogo di un mouse o di un joystick, è preferibile l’utilizzo di un dispositivo di puntamento in grado di operare a sei gradi di libertà che riconosca, quindi, tutti i tipi di movimento e li trasferisca direttamente al computer.
Nonostante siano stati creati dei mouse tridimensionali, il dispositivo migliore per operare in un ambiente 3D è la mano dell’operatore.
Si sono quindi sviluppati dei dispositivi in grado di tracciare la posizione e l’orientamento della mano in relazione agli oggetti virtuali visualizzati sullo schermo o sull’HMD. Si tratta di speciali guanti sui quali sono disposti dei sensori in grado di intercettare la posizione e il movimento di ogni singolo dito. Alcuni di questi device sono in grado di fornire una risposta tattile alle azioni dell’utente.
Per far ciò utilizzano delle piccole scariche elettriche per stimolare le connessioni nervose sottocutanee oppure utilizzano dei materiali in grado di flettersi quando sono sottoposti all’azione di un campo elettrico. In questo modo è possibile fornire all’utente la sensazione di impugnare realmente un oggetto. In base alle tecnologie utilizzate, i sistemi per tracciare il movimento di un operatore all’interno di un mondo virtuale, si suddividono in:

  • meccanici: legano fisicamente l’utente alla macchina mediante un braccio snodato nelle giunture del quale sono presenti dei sensori (di solito resistenze variabili) che rilevano gli spostamenti. Sono ingombranti e scomodi da usare ma permettono un’elevata velocità operativa.
    La loro applicazione è confinata a sistemi di teleoperazione e guida a distanza (ad esempio il controllo a distanza del braccio meccanico di un robot).
  • ottici: si basano sull’utilizzo di telecamere che rilevano la posizione di sorgenti di luce (di solito LED) poste sull’operatore, ed eseguono i calcoli sullo spostamento basandosi sull’elaborazione in tempo reale delle immagini acquisite.
  • ultrasonici: sfruttano la propagazione delle onde sonore, si basano sulla rilevazione della riflessione delle onde e della deviazione che esse subiscono quando un oggetto si muove al loro interno. Il principio è simile a quello utilizzato nei sonar.
  • magnetici: sono i sistemi più utilizzati. Una sorgente fissa genera un campo magnetico e l’operatore indossa dei dispositivi in grado di provocare distorsioni all’interno di esso. La posizione dell’operatore viene determinata da dei sensori che rilevano le variazione dei campi magnetici.

Le tecniche descritte possono anche essere utilizzate per determinare la posizione di ogni singola parte del corpo dell’operatore (mani, braccia, gambe, testa). Sono allo studio delle tute in grado di tracciare un intero corpo umano; per ora, i dispositivi commerciali, sono in grado di rilevare la posizione e l’orientamento della testa dell’utente (tramite sensori posizionati sugli HMD) e delle mani (tramite l’utilizzo di guanti).

L’audio tridimensionale

Le normali schede sonore inserite all’interno dei personal computer, consentono effetti di surrounding, ed in genere consentono almeno una basilare spazializzazione, montando praticamente tutti chip per il suono 3D, almeno nella forma più elementare. Le cose cambiano radicalmente nelle workstation per la realtà virtuale dove vengono inseriti dei processori sonori 3D evoluti. Essi permettono di posizionare i suoni in qualsiasi punto della sfera virtuale, di direzionarli a piacere, di spostarli, di generare effetti di assorbimento e di eco, esattamente come avviene nel mondo reale. L’utente, indossando delle cuffie stereofoniche di alta qualità, è in grado di individuare la posizione delle sorgenti sonore; grazie ai processori 3D, egli ha l’impressione che il rombo di un aereo sia posizionato sopra la sua testa, che un’automobile gli passi di fianco, etc. Il suono si materializza, si muove intorno a lui, si allontana, si sposta in un punto qualsiasi, e l’utente è in grado di identificare con chiarezza la posizione e le direttrici dell’eventuale spostamento. L’insieme dei device di visualizzazione, dei sistemi di tracciamento e dei processori sonori permette di creare mondi virtuali all’apparenza molto reali, con l’unico limite della fantasia di chi li progetta.

Un linguaggio per costruire mondi virtuali: il VRML

Il VRML (Virtual Reality Modeling Language ) è un linguaggio di descrizione di scene tridimensionali. Un file vrml è un file ASCII che contiene tutti i comandi necessari a descrivere una mondo virtuale. Questi comandi serviranno a descrivere la forma dei singoli oggetti, il loro colore, le texture, etc, ma anche a posizionare tali oggetti in uno spazio 3D. Detto in questo modo, sembra che VRML non proponga nulla di diverso dai più diffusi tool di disegno 3D e di rendering che sono anche più performanti sia come velocità che come qualità delle scene prodotte. Il vantaggio è che VRML è nato come standard per la rappresentazione di scene 3D su Internet e quindi ha un numero potenziale di utenti molto vasto. Quali potrebbe essere il suo utilizzo? Vediamo un esempio. Supponiamo di essere un mobiliere e di voler realizzare un catalogo dei nostri prodotti. Sarebbe sufficiente creare un sito internet con il listino, la descrizione dei mobili e una loro immagine. Ma sarebbe tutta un’altra cosa se consentissimo all’utente di visualizzare un modello 3D del mobile, di ruotarlo, di aprire ante e cassetti, di cambiare colore in tempo reali, etc. VRML consente tutto ciò.
Vi sono anche degli svantaggi: Il principale è che si interagisce con mondi 3D utilizzando strumenti pensati per scene 2D (il mouse, la tastiera, etc) che non sempre consentono operazioni intuitive. In secondo luogo siamo su Internet e dobbiamo scontrarci con la lentezza intrinseca della rete. Un mondo complesso con decine di oggetti formati da migliaia di poligoni, con molte texture, suoni, animazioni, può raggiungere senza troppi problemi dimensioni superiori al Mb. Attualmente esistono due versioni di VRML: VRLM 1.0 e VRML 2.0. La grossa differenza tra le due versioni stà nel fatto che la prima consente di descrivere soltanto mondi statici mentre con la seconda possiamo definire la dinamica degli oggetti che compongono la scena e la modalità di interazione che questi possono avere con l’utente. Nella versione 2.0 è stata, inoltre, introdotta la possibilità di introdurre fonti audio e video in modo da rendere più realisteche le scene. I mondi vrml sono contenuti in files con estensione .wrl. Esistono molti browser per vrml 1.0 ; un po' di meno per vrml 2.0, a causa della giovinezza della specifica.

Un browser vrml può esistere come applicazione a sé stante oppure può funzionare da plug-in per un browser html. Le interfacce sono per lo più banali. Di norma si rendono disponibili operazioni di walking con spostamenti avanti-indietro, innalzamento-abbassamento del punto di vista e rotazioni. È poi possibile settare la velocità di spostamento, il livello di dettaglio delle scene (dipende anche dalla potenza della CPU e della scheda grafica installata), selezionare delle viste predefinite (a livello di codice VRML).
Cosa serve per creare mondi virtuali in VRML? Il metodo più semplice è utilizzare un programma di modellazione solida 3D (Autocad, 3D Studio Max, Extreme 3d) in grado di salvare i file in formato VRML. Esistono pure programmi specifici che sono in grado di generare mondi VRML animati e interattivi. Il modo più economico, ma anche quello più complesso, è quello di descrivere direttamente le scene utilizzando un editor di testo (es. il NotePad) e il linguaggio VRML. Un esempio potrebbe essere il seguente (salvarlo con estensione WRL)

#VRML V2.0 utf8
# primo mondo vrml

Shape {
 appearance Appearance {
  material Material {
   emissiveColor 1 0 0
}
 geometry Sphere {
  radius 1
 }

Il risultato di questo listato dovrebbe essere una sfera di colore rosso; diciamo "dovrebbe" in quanto non tutti i browser interpretano correttamente le specifiche; oer visualizzare correttamente meglio affidarsi a plugin o software specifici.

Consigliati dal Club

Il sito personale del nostro presidente.
La farmacia per te!

Ghost Computer Club

Note legali

Tutti i marchi e nomi citati appartengono ai rispettivi proprietari. Ghost Computer Club è associazione senza fini di lucro legalmente riconosciuta.

I contenuti di questo sito appartengono a Ghost Computer Club.Ogni tipo di riproduzione, con ogni mezzo ed in ogni luogo, è espressamente vietata senza consenso scritto del Consiglio Direttivo del Club.