Realtà Virtuale e Mondo Tridimensionale

Il concetto di realtà virtuale è ormai entrato nel background culturale comune. Quello che è molto meno noto è che che la realtà virtuale sta trovando applicazione soprattutto nella visualizzazione scientifica, analisi metereologiche, strutture in movimento, aerodinamica ed impatto ambientale. Fino a pochi anni fa il limite era imposto dall’hardware delle macchine comuni, ma oggi questo limite è quasi del tutto superato con dei dispositivi hardware che possono fare calcoli milioni e milioni di volte più velocemente rispetto a quelli di qualche anno fa.
La percezione della profondità è resa possibile dal semplice fatto di avere due occhi, i cui rispettivi campi visivi si sovrappongono. Osservando un oggetto tridimensionale prima con un occhio e poi con l’altro si può notare che le due immagini sono leggermente sfasate in orizzontale ( displacement ). Quando il cervello fonde i due input in un’unica scena, attribuisce ad ogni oggetto una profondità inversamente proporzionale al valore del displacement percepito, in sostanza uno z-buffer.
Sappiamo che la terza dimensione ( 3D ) è caratterizzata dall’asse z in più rispetto al 2D, che su di uno schermo non esiste, in quanto soltanto con asse x ed y. In passato per ovviare a questo problema si sono creati dei caschetti dotati di due piccoli monitor, uno per occhio, ma ci sono indubbiamente dei problemi con questa apparecchiatura:

  • risoluzione bassa di poche centinaia di pixel ( punto luminoso sullo schermo )
  • pesante e scomodo
  • difficoltà nel tarare correttamente la distanza e l’inclinazione del display per adattarsi alla conformazione del viso dell’utente
  • il prezzo elevato e l’estrema delicatezza dell’hardware
  • impossibilità ad essere utilizzato da più di un utente

Questi sono i motivi che hanno impedito una larga diffusione dei caschetti per la realtà virtuale.
La soluzione attualmente più adottata in ambiente industriale e nei cinema è forse meno versatile, ma presenta ottime proprietà di un prodotto destinato al largo consumo, un paio di occhiali con lenti polarizzate. Vediamo il principio del funzionamento degli occhiali occlusori: il display mostra alternativamente le immagini destinate all’occhio sinistro e destro rispettivamente, avvicendandole ad una frequenza molto alta, di solito 60 Hz. Gli occhiali fanno in modo che ogni occhio riceva solo l’immagine ad esso destinata, oscurando la lente oppurtuna in sync con l’output grafico. Nella stanza in cui si osserva l’immagine, quindi, verrà inviato oltre al segnale video, anche un segnale di sincronizzazione per gli occhiali, che viene di norma diffuso da un apposito sensore ad infrarossi o ad ultrasuoni.
Per quanto riguarda la parte software, oggi tutti abbiamo la possibilità di avere schede video estremamente performanti e con quantitativi di VRAM adeguati per la programmazione 3D con vari linguaggi di programmazione. Le piattaforme per creare applicazioni tridimensionali che prenderemo in esame in questo blog sono due:

  • DirectX di Microsoft, che possono essere programmate con il classico C/C++ ed anche con i linguaggi del .NET framework, quindi VB.NET o VB 10 ( Visual Basic ) e C# ( C Sharp ).
  • OpenGL che utilizzeremo con il C/C++.

La differenza sostanziale tra le due piattaforme è che le DirectX sono formate oltre che dagli strumenti per il 2D e 3D, anche per i dispositivi di input, la musica ed i suoni, mentre le OpenGL hanno nel motore 3D la loro ragion d’essere. Nei prossimi articoli inizieremo a trattare di programmazione per creare oggetti 3D e cercherò di insegnarvi a programmare questo fantastico mondo virtuale.

Informazioni su Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.
Questa voce è stata pubblicata in Grafica e contrassegnata con , . Contrassegna il permalink.