Unity o Unreal: qual’è la piattaforma migliore per la VR? (Part 1)

Ecco un’altra diatriba tra due dopo Apple vs. Windows, Chrome vs. Firefox e Android vs. Iphone ci mancava anche la “game engine war”. In questo caso questa “guerra” è tra due game engine e prevalentemente sul discorso VR. Se non sapete quali sono i maggiori game engine o motori grafici disponibili li trovate in questo articolo I software per i giochi in realtà virtuale di qualche mese fa.

Su questo blog non scrivo recensioni in modalità promozionale anche perché nessuno mi manda le videocamere ed i software da testare perciò le mie impressioni e quello che descrivo deriva da prove sul campo, da situazioni in cui ho avuto bisogno di un software o l’altro o una videocamera o l’altra.

Gli inizi

La mia sperimentazione in VR con ambienti ricreati è relativamente recente. Dopo qualche anno dedicato prevalentemente al video immersivo, ultimamente, mi sto avvicinando anche al mondo della VR per integrare il video, situazione prettamente 3DOF, ad ambienti immersivi 6DOF. Il primo motore grafico che ho usato in assoluto è stato Unity. Appena iniziato a fare riprese in 360VR avevo bisogno di un player per poterli visualizzare e cercando online trovai un tutorial su come usare Blender per realizzare una sfera con le normali inverse e Unity per inserire i video come texture animata. Questo fu il mio primo contatto con il mondo dei game engine e con Unity. Trovai Unity abbastanza intuitivo anche se non utilizzavo da anni dei software 3D a parte Elements 3D di After Effects o Blender per creare degli effetti per i miei video design e scenografie digitali.

Unity

Per il motivo descritto sopra inizio le mie impressioni partendo da Unity. Questo breve post vuole spiegare le funzionalità VR di Unity e non il funzionamento del software, per questo vi rimando ai prossimi tutorial dove affronterò questo tema. Iniziamo con il dire che quando lavoriamo in VR dobbiamo abbandonare un po’ di qualità in funzione della performance del progetto perciò se vediamo dei video stupendi con texture magnifiche, luci e riflessi che “sembrano veri” dobbiamo ridimensionare le nostre aspettative quando prepariamo un progetto per la VR. Sicuramente avete visto il video di presentazione delle nuove funzionalità di Unity nella versione 2018 e se non lo avete ancora visto lo trovate in questo mio post, guardatelo e poi continuate a leggere.

Bello no? Ecco scordate tutto questo in VR o almeno buona parte. L’hardware VR ad ora ha ancora dei limiti specialmente nel rendering in tempo reale delle luci. Dobbiamo pensare che, se per un videogioco per vederlo in 4K con tutti gli shader, ombre, dettagli etc. abbiamo bisogno comunque di macchine potenti per la VR dobbiamo calcolare che il computer deve renderizzare oltre ad una qualità buona ma soprattutto lo deve fare per avere una stereoscopia perciò “raddoppia” il lavoro di processing delle immagini. Se per i videogiochi normali bastano schede video di fascia media per un videogioco VR le caratteristiche della GPU devono sottostare a degli standard medio-alti in termini di memoria e velocità per poter visualizzare degnamente un videogioco. Per questo i programmatori di Unity nell’ultima versione hanno creato dei modelli o template dedicati alla VR. Questi template sono adattati ai visori perciò creano tutti gli elementi di rendering adattati alla visualizzazione su dispositivi VR. Poi c’è da capire su che dispositivo andremo a visualizzare il nostro progetto ed ottimizzarlo in base al visore, sicuramente se è un HTC Vive o un Oculus Rift potremo “spingerci” un po’ di più sulla qualità ma sicuramente su Oculus Go le cose saranno più “limitate”.

Sinceramente Unity fa un ottimo lavoro e spesso la differenza tra visori è minima in fase di esportazione.

Questa prima parte introduttiva per adesso si conclude e vi aspetto alla prossima parte dove vedremo come impostare un progetto VR in Unity.