Skip to content Skip to sidebar Skip to footer

Impostare la risoluzione grafica in stile ‘retro’ 8bit in Unity

Negli ultimi tempi nel mondo dei videogiochi sta tornando alla ribalta la grafica retro-style, spesso definita come 480×360. Questo tipo di risoluzione permette quindi di simulare l’aspetto di giochi da console a 8bit degli anni ’80 donando un feeling particolare e accattivante (certo non per tutti i palati).

Per ottenere questo tipo di effetto si è portati a pensare di impostare una risoluzione bassa del renderer di Unity ma questo può comportare problemi di incompatibilità con alcune periferiche video, soprattutto su console.

La soluzione corretta invece è quella di creare una Render Texture in Unity che, opportunamente configurata e con risoluzione abbassata permette di ottenere quanto vogliamo. Nell’immagine sotto è bastato creare una Render Texture di dimensione 480×360 (ma possono essere provate risoluzioni sottomultipli di 1920×1080) ed impostare il Filter Mode su Point.

A questo punto la Render Texture deve essere impostata anche nella Camera corrente e poi essere associata ad una Raw Image del Canvas con allineamento stretchato al centro e messa in full-screen così da occupare tutto lo schermo. Il risultato in retro-style è quello che vedete nell’immagine di testa dell’articolo (per gentile concessione di Desdinova, Starmaster Prototype).

Avendo impostato la scrittura della camera sulla Render Texture (e non sul Backbuffer come normalmente avviene) sarà necessario aggiungere un’ulteriore camera con le medesime impostazioni della precedente (senza impostare questa volta la scrittura sulla Render Texture) e che si muova con essa impostandola come figlia.

Questo tipo di visualizzazione impatta intorno al 10% sugli FPS (Frame Per Seconds) per via della scrittura della scena su una Texture ma può essere ottimizzata per esempio cambiando la modalità di render delle ombre da Soft Mode a Hard Mode e togliendo l’Anti Aliasing.