Come ottimizzare le applicazioni VR

Una guida estesa sulle ottimizzazioni da utilizzare in VR per Unity 3D e non solo…

Riunire queste informazioni non è stato facile. E’ molto semplice infatti creare una mesh attraverso un qualsiasi modellatore tridimensionale (se potete usate Blender ;-) ed inserirla in una demo per Unity 3D. Molto più complesso ottimizzare un’applicazione VR per evitare possibili perdite di prestazione così nocive e soprattutto “pericolose” per la così detta “motion sickness” (chinetosi).

E’ necessario quindi apprendere diverse metodologie, trucchi e segreti che sono riportati (in maggior parte) in questo interessante video:

  1. Utilizzo di mesh lowpoly. Questo consiglio contiene al proprio interno un’intrinseca incomprensione. Per mesh Lowpoly si intede infatti un stile di creazione orientato a forme molto semplici e che contengano appunto pochissimi poligoni. Questo approccio è stato sfruttato in moltissimi giochi od esperienze VR di successo ed anche il video riportato suggerisce questa strada nello stile da adottare per il proprio gioco VR. E’ possibile tuttavia creare oggetti con un numero di poligoni molto basso che tuttavia utilizzino texture ad alta risoluzione (2K, 4K o persino 8K) provenienti da mesh ad alto numero di poligono ed opportunamente “rimappato”. Questo “trucco”, molto usato in ambito Gaming, richiede tuttavia una “pipeline” (ovvero un “workflow”, flusso di lavoro di più esperti) di lavorazione molto più lunga e complessa. I risultati sono in ogni caso più realistici e soprattutto molto più apprezzati dagli utenti.

Per una guida molto ben realizzata e chiara alla creazione di oggetti lowpoly con texture PBR ad alta risoluzione si veda:

Un ottimo libro in italiano che tratta l’uso di texture PBR attraverso la metodica descritta in precedenza utilizzando Substance Painter è il seguente:

2. Uso della tecnica Billboard Impostors.

3. VRWorks per schede GPU Nvidia. Libreria fondamentale sia per Unity che per Unreal che tuttavia non sembra aver riscosso molto successo. Il motivo sembra essere correlato all’uso frequente di particolari shader che potrebbero entrare in conflitto con la libreria messa disposizione di Nvidia. Nei miei test tuttavia non ho visto grossi problemi, ho anzi riscontrato un netto miglioramento delle prestazioni:

4. LOD in Unity 3D secondo Intel.

Mirror:

5. Ulteriori informazioni:

Mirror:

Conclusioni

Aggiungerò qui ulteriori consigli, tutorial e link per l’ottimizzazioni delle applicazioni VR.