PS4 PRO: 4k Nativo o con Upscale, ecco come funziona il Checkerboard Rendering

Vi spieghiamo come fa Playstation 4 Pro a portare la risoluzione 4K nei vostri salotti ad un prezzo così competitivo.

PS4 PRO: 4k Nativo o con Upscale, ecco come funziona il Checkerboard Rendering
Articolo a cura di

Da quando è stata annunciata la Playstation 4 Pro non si fa che parlare di 4K, di risoluzione nativa e upscalata; termini come supersampling e HDR la fanno da padrona anche sulle nostre pagine, e qualche giocatore inizia a storcere il naso: cosa hanno a che fare tutti questi tecnicismi con i videogiochi? Altri utenti sono incuriositi, vogliono capire se la visione di "mid-gen" che Sony sta per portare sul mercato ha un senso, almeno graficamente parlando, e come funziona. Passata la "sbornia tecnica" del lancio, torneremo tutti, si spera, a concentrarci sui giochi. Ma se volete sapere come fa la Ps4 PRO a portare la risoluzione 4K nei vostri salotti ad un prezzo così competitivo, non vi resta che continuare a leggere.

Nativo o Upscalato?

Sebbene la Ps4 PRO sia tecnicamente capace di generare giochi alla risoluzione di 3840×2160 pixel, ovvero il 4k nativo, saranno pochissimi i titoli che riusciranno a garantire prestazioni simili. Parliamo di giochi "leggeri" quali Mantis Burner Racing, Rez Infinite o The Witness. Quando invece parliamo di titoli tripla A, ad esempio Uncharted 4, Battlefield 1 o Rise of the Tomb Raider, la pur buona potenza della GPU di Ps4 PRO non è sufficiente a garantire (almeno) 30 fps e 4K nativi, una risoluzione che richiederebbe di calcolare 4 volte il numero di pixel presenti nelle immagini a 1080p.

Per renderizzare un titolo Ps4 di alto profilo come Uncharted 4 in 4K nativi serve una GPU capace di generare almeno 7.2 Tflops di calcoli (4 volte la potenza di Ps4, poco meno del doppio rispetto a quella di PRO). Sony avrebbe dovuto effettuare un cambio di tecnologia radicale della GPU ed affrontare quindi costi di produzione, ricerca e sviluppo molto più elevati. Per portare sul mercato una console pronta per il 4K ad un prezzo competitivo l'unica soluzione era l'upscaling.
L'upscaling è un'operazione che si effettua sulle immagini per aumentarne la risoluzione: poiché i pixel sono elementi indivisibili dalle dimensioni sempre uguali (non si possono allargare o stringere) per farlo è necessario aumentare il numero di pixel creandone di nuovi, analizzando quelli presenti nell'immagine originale. L'upscale è un'operazione mediamente molto leggera e facilmente applicabile in tempo reale al flusso video.
Non si tratta però di una trasformazione priva di problemi: aumentare artificialmente la risoluzione di un'immagine, passando ad esempio da 1920x1080px a 3840×2160px, comporta la creazione ex-novo di un'enorme quantità di pixel che, se eseguita in modo superficiale, darà vita ad un quadro poco definito, sfocato e persino afflitto da più aliasing dell'originale. Ovviamente minore il numero di pixel da "inventare" migliore sarà il risultato finale, cosicché partire da una risoluzione 1800p per arrivare a 2160p (il 4k) sarà decisamente meglio che non farlo partendo da 1080p. Sappiamo che ad esempio Uncharted 4 su PS4 PRO viene renderizzato nativamente a 1440p, mentre Horizon Zero Dawn parte da 1800p, a tutto vantaggio (in termini di definizione) del titolo Guerrilla.
Per ottenere un'immagine upscalata di ottima qualità è importante, insomma, renderizzare alla massima risoluzione nativa possibile e disporre di uno scaler efficiente ed impeccabile. Per fortuna la Ps4 PRO dispone di un hardware dedicato che si occupa di gestire ed accelerare in modo innovativo sia le operazioni di upscale che i filtri antialiasing. Uno degli algoritmi che Sony ha implementato per i suoi titoli first party e che suggerisce di usare a tutti gli sviluppatori è chiamato checkerboard.

Come funziona il checkerboard rendering?

Come accade spesso ultimamente, è Mark Cerny a portare l'attenzione dei media e dei giocatori sulle nuove tecnologie grafiche, tra cui questa potenziale rivoluzione nel mondo del rendering 3D, che risponde al nome di checkerboard rendering. Eppure già Ubisoft ne aveva implementato una sua versione in Rainbow Six Siege oltre un anno fa. Che ci crediate o meno, il first person shooter tattico della casa francese viene renderizzato nativamente su Ps4 alla risoluzione di appena 960x540 pixel, e poi upscalato fino a 1920x1080 con risultati davvero ottimi.Ma Sony ha fatto un passo in più, fondendo un'avanzata tecnica di upscale con un un innovativo sistema di accelerazione hardware dell'antialiasing. Ecco come funziona: all'interno di uno spazio di memoria dalle dimensioni generose vengono salvati i dati relativi a posizione,rotazione e velocità di tutti gli oggetti presenti sulla scena poligonale, e persino dei singoli triangoli presenti nella scena 3D. Inoltre vengono salvati i valori (motion vector) relativi a velocità e posizione di ogni pixel dell'immagine.
A questo punto il software renderizza solo un certo numero di pixel dell'immagine, e ricostruisce quelli mancanti seguendo un pattern a scacchiera (checkerboard in inglese).

Facendo riferimento all'immagine sulla sinistra (grazie a Beyond3d.com), la GPU potrebbe renderizzare solo i pixel rossi e poi, tramite lo scaler, ricostruire quelli verdi, utilizzando però anche i dati contenuti nel motion vector di uno dei frame precedenti (riducendo di molto il costo computazionale), creando così pixel molto simili a quelli che sarebbero presenti nella stessa immagine se fosse stata renderizzata alla risoluzione nativa.
Inoltre grazie ai dati immagazzinati la GPU può sapere in tempo reale (e con un basso costo computazionale) dove si trovano gli angoli e le asperità più assetate di antialiasing, ed applicarlo quindi solo in alcune aree dell'immagine, in modo colmare eventuali artefatti derivanti dall'azione dello scaler.
Complice anche la minore necessità di antialiasing (l'altissima definizione dei 4k riduce in modo naturale le scalette) la GPU è alleggerita di moltissimi calcoli ed i risultati del checkerboard rendering sono - quasi sempre - eccellenti.

L'Upscaling è davvero così facile?

Finora abbiamo sempre letto che il checkerboard upscaling, per quanto avanzato, non impatta sulle performance dei motori grafici perché supportato dal nuovo hardware custom della Ps4 PRO, e che non richiede molto lavoro da parte degli sviluppatori. In realtà l'esperienza ci insegna che non esiste un solo algoritmo di upscaling che vada bene per qualsiasi tipo di immagine, e che di "gratis" non esiste nulla nel mondo della grafica 3D, nemmeno l'upscale. Secondo Jonathan Blow, il creatore di The Witness, solo alcuni motori grafici sono già strutturati in maniera tale da fornire tutti i dati che servono allo scaler per operare in piena autonomia, ed in modo tale che il consumo di risorse della GPU sia molto basso (ad esempio sono necessari i dati relativi alla posizione degli oggetti, o quelli contenenti i motion vector).
Alcuni engine 3D potrebbero non essere altrettanto "fortunati" ed il costo dell'upscale risulterà più rilevante, sia in termini di performance sia in termini di quantità di lavoro da parte delle software house per implementarlo. Secondo Mark Williams, technical director presso VooFoo Studios (gli autori di Mantis Burn Racing) il Checkerboard Rendering è una tecnica molto efficace ma che non è adatta a tutti i giochi. "Non presenterà mai una qualità pari a quella un'immagine nativa 4K, anche se in scene relativamente statiche potrà andarci vicino", ha dichiarato.

Uno dei limiti più evidenti di questa tecnica, infatti, sarebbe legato alla quantità di oggetti in movimento sullo schermo ad alta velocità: "In Mantis Burn Racing, dove tutto si muove molto velocemente, la definizione dell'immagine upscalata è molto inferiore ai 4K nativi; ma se le immagini sullo schermo cambiano poco, frame dopo frame, si può usare una tecnica di antaliasing aggiuntiva come il temporal reprojection per riempire i dettagli andati persi a causa del checkerboard rendering".
Va sottolineato come Sony abbia dotato la PS4 PRO di uno scaler programmabile, ed ogni sviluppatore dovrà trovare il metodo migliore per portare i propri giochi in 4K, utilizzando una delle tecniche sviluppate dalla casa giapponese e fornita come esempio insieme ai devkit. Se volete approfondire il significato dei termini tecnici utilizzati in questo articolo cliccate qui.