Test economici con il VR


Come ho già accennato, ho intenzione di dedicare parte del mio tempo a sperimentare la tecnologia VR con Unreal Engine 5. L’utilizzo di un visore di buona qualità è fondamentale per poter rendere al meglio l’immersione nei mondi virtuali ma, per poter fare dei test di programmazione, non è necessario spendere un capitale.

In questi casi è sufficiente una periferica che permetta di provare le funzionalità sviluppate su UE e il loro impatto grafico come le soluzioni basate su Google cardboard e simili. In questo caso una periferica con prestazioni ridotte potrebbe essere addirittura migliore di una più costosa in quanto la resa grafica del testo e degli elementi di interfaccia più minuti, se resi bene a bassa risoluzione, non potranno che migliorare con un visore dalla risoluzione più alta.

Per poter provare la funzionalità di un visore VR senza spendere un occhio della testa, quindi, si può utilizzare un comune smartphone, in quanto gli schermi dei modelli anche più economici sono comunque eccellenti e le loro dimensioni medie sono di tutto rispetto. L’unico pezzo di hardware necessario per trasformare un comune smartphone in una periferica VR è un visore 3D per smartphone. Queste periferiche si trovano di tutti i prezzi e di tutte le qualità. Se si vuole spendere poco è possibile trovare dei prodotti economici ma comunque di qualità decente che permettono di portare a casa il risultato con pochi euro. Su qualsiasi piattaforma di e-commerce potrete trovarne con una semplice ricerca per “visore VR per smartphone”.

Le soluzioni tecniche non sono tutte uguali e, ovviamente, il prezzo permette di accedere a livelli di qualità molto differenti tra loro ma, in generale, la resa migliore è ottenibile con l’utilizzo di lenti di vetro, di possibilità di regolazione della distanza tra gli occhi e nella profondità delle lenti rispetto al piano dello schermo.

Questa non vuole essere una recensione vera e propria di una soluzione, ma, tanto per chiarire quale sia l’effetto delle varie funzioni, per il mio visore sono riuscito a spendere pochi euro in un negozietto (credo circa 5€ o meno) e ho ottenuto un visore di media qualità. Le lenti sono di plastica e non di vetro e presentano delle distorsioni abbastanza marcate in alcuni punti, ma nulla che renda inutilizzabile il visore, solo che in certi punti l’immagine ha delle deformazioni “a bolla”. Il visore ha la regolazione della distanza tra le lenti e la profondità delle lenti verso lo schermo. La prima regolazione è stata fondamentale in quanto ho potuto ottenere una buona visione stereoscopica solo utilizzando un telefono con schermo di 5,6 pollici e impostando la distanza interoculare al massimo. Utilizzando un telefono con schermo di 6,4 pollici l’immagine riprodotta sul display risultava troppo distante dalla posizione dei miei occhi compromettendo la ricostruzione tridimensionale e quindi rendendo impossibile l’utilizzo del visore: nel caso tu voglia acquistare un visore con lenti fisse, verifica che la resa dell’immagine sia adatta alla tua conformazione oculare o potresti non riuscire a utilizzare il visore. La profondità delle lenti modifica l’area di visione e quindi migliora l’immersione, anche se non ha particolari effetti positivi sulla visualizzazione: la profondità delle lenti migliora l’angolo di visuale, anche se non cambia l’immagine riprodotta.

In conclusione l’utilizzo di lenti mobili, almeno nel mio caso, ha permesso di regolare la visione in modo da costruire un’immagine tridimensionale accettabile.

Una volta inserito il telefono nel visore, però, la vera differenza la fa il software di visualizzazione e la sua interfaccia con i vari componenti del PC. Per questa parte del lavoro ho provato due diverse piattaforme:

Entrambe le piattaforme le ho provate su telefoni Android e dovrebbero essere disponibili anche per l’ambiente iOS.

Tecnicamente le due soluzioni sono analoghe e consistono in un server da installare sul PC che si occupa di formattare l’immagine 3D da inviare al visore e di un client da installare sul telefono che proietta l’immagine generata collegandosi via LAN con il server. In entrambi i casi la trasmissione LAN può essere effettuata via WLAN WiFi che via tethering USB.

Nei miei test la soluzione tethering USB è risultata quella più stabile, essendo il telefono collegato direttamente con il PC. La soluzione WLAN è indicata dai siti dei produttori come consigliata solo se il router WiFi è collegato fisicamente al PC. Io ho provato solo il collegamento tramite WiFi normale, ovvero con il PC e il telefono collegati al router tramite connessione wireless, e il sistema funziona abbastanza bene, anche se con qualche artefatto dovuto alla riduzione della banda.

TrinusVR

Il primo test l’ho fatto con Trinus AIOVR. Una volta installato e avviato il client su smartphone e il client su PC si dovrebbe effettuare il collegamento in automatico.

Nei miei test questo collegamento non ha mai funzionato e ho sempre dovuto inserire l’indirizzo IP e la porta nell’intefaccia grafica del server. Il dato di IP e porta viene fornito dal software di Trinus sullo smartphone quindi non ci sono da fare ricerche particolari, il problema è che la porta varia a ogni disconnessione richiedendo di inserirla nuovamente, una soluzione un po’ fastidiosa. Nel caso dell’utilizzo dello smarphone come router, il client di Trinus non ha identificato l’indirizzo IP del telefono, nonostante il PC fosse correttamente collegato a internet tramite lo smartphone.

Interfaccia Trinus AIOVR server su PC

Una volta inserito l’indirizzo IP e la porta, il collegamento è stabile e di buona qualità. La resa grafica è sempre molto buona, specialmente con il collegamento USB, peccato che la precisione dei sensori di posizione sia approssimativa e che nel tempo derivi in modo inspiegabile. Questo significa che la posizione frontale o l’inclinazione, dopo un po’ si troveranno disallineate rispetto al valore iniziale.

Altro problema della soluzione è che non permette di includere alcun controller all’ambiente virtuale, limitando di fatto le possibilità di interazione. Esiste un software da installare su un secondo smartphone che simula un controller VR utilizzando i sensori di posizione, ma, a oggi, è disponibile solo con la soluzione di Trinus compatibile con il visore PSVR e non con quello per smartphone.

La soluzione di Trinus è limitata nel tempo di utilizzo e deve essere acquistata per poterne sbloccare l’utilizzo illimitato, anche se, da interfaccia, non è molto chiare quale sia il limite di tale utilizzo.

VRidge

Il secondo test l’ho fatto con la soluzione VRidge. Da un punto di vista qualitativo e di UI, questo software è molto più rifinito e chiaro nella configurazione. I menù del server sono puliti e professionali e l’interfaccia del client smartphone con il server è immediata e automatica. Nei miei test il server VRidge ha sempre individuato il client smartphone utilizzando la connessione WiFi del router, la connessione tethering USB e la connessione al router dello smarphone.

L’interfaccia mostra chiaramente il limite di utilizzo della versione gratuita che è di 5 minuti estendibili a 10 attraverso la registrazione. Per quanto 10 minuti non siano tanti, sono sufficienti a fare dei test abbastanza estesi. Ho apprezzato la possibilità di visualizzare il tempo di utilizzo residuo. Anche nell’applicazione client viene presentato una finestra di segnalazione che indica quando manca meno di un minuto alla fine della demo.

Interfaccia VRidge server su PC

Il tracciamento posizionale di VRidge è molto migliore di quello di Trinus e l’allineamento del visore rimane stabile durante tutto l’utilizzo. La qualità grafica è ottima, anche in questo caso, e può essere regolata durante l’uso dall’interfaccia del server. Il problema che ho trovato è che, dopo i primi giorni, la qualità della riproduzione è calata e, anche utilizzando il collegamento USB, si verificano artefatti dovuti a bassa banda che nei miei primi test non erano presenti. Non so quale sia la causa di questi artefatti, ma sono fastidiosi perché bloccano il flusso dell’immagine di quando in quando.

Nell’utilizzo con UE, entrambe le soluzioni si sono dimostrate valide anche se Trinus ha mostrato una maggiore compatibilità con le ultime evoluzioni di UE rispetto a VRidge. Infatti la soluzione Trinus ha permesso la riproduzione delle immagini renderizzate con il motore OpenXR che è diventato standard in UE5, mentre VRidge (almeno nella mia installazione) è sempre andato in crash con la soluzione OpenXR. Per poter visualizzare l’output delle immagini UE5 ho dovuto modificare il plugin di visualizzazione disattivando OpenXR e attivando il plugin SteamVR. Il menù di gestione è disponibile sotto Edit/Plugins; cercando VR nella lista dei plugin abilitati è possibile selezionare il tipo di plugin di visualizzazione, quindi non è un grosso sforzo e permette di utilizzare la migliore stabilità di posizione di VRidge rispetto a Trinus, anche se con un plugin a prestazioni più basse come SteamVR rispetto a OpenXR.

Il vantaggio notevole dato da VRidge è la possibilità di emulare i controllori VR utilizzando una nutrita serie di periferiche standard come mouse/tastiera o gamepad xbox. Esiste anche un software per smartphone (a pagamento) che permette di emulare uno o più controller VR che funziona con la soluzione PC+smartphone ma non l’ho provato e quindi non posso giudicarne la qualità.

In generale ho trovato che la soluzione VRidge sia più adatta ai miei scopi soprattutto perché permette di emulare non solo il visore ma anche i controller VR, fornendo una soluzione “tutto incluso” che, entro i limiti di 10 minuti, può essere utilizzata senza spese aggiuntive; un buon compromesso tra qualità della soluzione, possibilità di utilizzo gratuito e versatilità delle interfacce utilizzabili.

Cosa ne pensi? Hai avuto modo di valutare queste soluzioni? Ne hai sperimentate altre? Sei riuscito a sfruttare positivamente una soluzione per lo sviluppo di applicazioni VR con UE? Fammelo sapere nei commenti!


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *