grafica tech

Grafica e tecnologia nei videogame – Come funzionano GPU e Shader

A cominciare con le primissime macchine da gioco e proseguendo nel corso degli anni, l’argomento grafica è sempre stato uno dei nodi centrali dell’interesse dell’industria dei videogame. Che si trattasse di sprite bidimensionali, di immagini realizzate a mano, di full motion video o dei primi esperimenti tridimensionali, i giocatori sono sempre stati attenti all’impatto visivo delle diverse produzioni, dando spesso il via alle celebri e discutibili “console war”, in parte per screditare una particolare macchina, in parte per difendere i propri investimenti.
Questo speciale si propone di approfondire in maniera esauriente e chiara tutto ciò che c’è da sapere sulla grafica, a partire dalle nozioni di base, a finire con quelle più complesse cui solo i veri appassionati tendono ad interessarsi.

Grafica nei videogame | Risoluzione, pixel e rapporto di immagine

La risoluzione ha un impatto enorme nella qualità grafica percepita dal nostro occhio, e non solo in relazione al mondo dei videogame. Gli schermi delle nostre TV, dei monitor da PC e dei nostri smartphone sono composti da unità chiamate pixel. Un pixel è identificabile come uno di quei piccoli quadratini che notiamo avvicinandoci a un pannello, e che rappresenta la più piccola unità che è possibile controllare per ottenere poi delle immagini. Ciascun pixel è formato da almeno 3 sub-pixel, da immaginare come minuscole componenti che possono emettere i colori blu, rosso o verde. Modificando i valori di ciascun colore è possibile determinare cosa vedremo a schermo, ma anche ottenere alcuni effetti particolari che permettono di migliorare la qualità visiva finale.

La risoluzione di un pannello viene indicata dal numero di pixel orizzontali per quello dei pixel verticali che lo compongono. Ad esempio, se parliamo di 1920×1080, stiamo indicando che il nostro schermo è dotato di 1920 pixel orizzontali e di 1080 pixel verticali. Maggiore è la risoluzione, più elevata diventerà la definizione dell’immagine. Di contro, rappresentare un’immagine a bassa risoluzione, significa adoperare meno pixel, e avere quindi un livello di dettaglio più basso. Questo si applica a qualunque immagine, a partire dalle trasmissioni televisive, passando dagli smartphone e continuando con la grafica dei videogame.
Al momento in cui scriviamo, la risoluzione standard per smartphone di fascia alta è poco superiore alla classica 1920×1080 punti, risoluzione chiamata per comodità Full HD (Full High Definition). I monitor da gaming hanno invece risoluzioni che partono da 1920×1080 (FHD), passano a 2560×1440 (WQHD o 2K) e – per il momento – si fermano a 3840 x 2160 pixel, ovvero la classica 4K, o UHD. Com’è facile capire, bisogna stare attenti a non fare confusione, in quanto il mercato tende ad affibbiare nomi che possono suonare confusionari. È dunque consigliabile usare come riferimento i valori numerici piuttosto che gli acronimi. Giusto per fare un po’ di chiarezza, menzioneremo poco sotto alcuni degli acronimi più utilizzati, indicandone a fianco la reale risoluzione.

Il formato 16:9 è attualmente quello più utilizzato, sia per quanto riguarda la TV che il mercato dei monitor PC. Dopo un lungo periodo ad appannaggio dei 4:3, il 16:9 sembra aver convinto grazie ai vantaggi offerti nella visione dei contenuti multimediali.
L’aspect ratio (rapporto d’aspetto) non è altro che il rapporto matematico tra la larghezza e l’altezza dell’immagine.
Oltre al classico 16:9, sempre maggior rilevanza sta acquisendo il 21:9, molto comodo per quanto riguarda la visione di contenuti multimediali. Ancora discretamente utilizzato è inoltre il 4:3, sia per quanto riguarda pannelli da tablet (sia Apple che Google ne fanno uso) che monitor professionali.

  • Sigle e risoluzioni formato 16:9
    WVGA 720 x 480
    HD 1280 x 720
    HD+ 1600 x 900
    Full HD 1920 x 1080
    2K o WQHD 2560 x 1440
    4K o UHD 3840 x 2160
    8K 7680×4320
    16K 15360×8640
  • Sigle e risoluzioni 21:9
    2560 x 1080
    3440 x 1440
    3840 x 1600
    4320 x 1800
    5120 x 2160



Differenze tra Interlacciato e Progressivo

Molti di voi avranno notato che quando si parla di grafica dei videogame in Full HD si usa il valore 1920 x 1080p. Ma per cosa sta quella “p” finale?
La maniera di realizzare un’immagine varia in base al tipo di tecnologia utilizzata. Nello specifico, si può parlare di una risoluzione a scansione Progressiva (p) o Interlacciata (i). Di conseguenza, le risoluzioni 1080p e 1080i sono molto diverse in quanto a resa visiva, nonostante utilizzino lo stesso numero di pixel a schermo.
La scansione di tipo interlacciato sta cadendo ormai in disuso, in quanto le bande offerte dall’etere e la qualità del software migliorano di anno in anno. A parità di risoluzione, la qualità di una scansione interlacciata sarà sempre inferiore rispetto ad una progressiva, ma permetterà un consumo inferiore di banda.
Per realizzare un’immagine con scansione interlacciata, lo schermo divide il fotogramma in linee pari e linee dispari. Ciascun set di linee viene chiamato semiquadro. Un televisore a 50 Hertz con scansione interlacciata proietterà 50 fotogrammi al secondo, 25 per ciascun quadro. Ne consegue che l’immagine completa sarà proiettata solo 25 volte nonostante i fotogrammi siano 50.
Al momento, lo standard PAL (standard per Europa ed Australia) prevede 50 semiquadri al secondo, contro i 59,94 dello standard NTSC (Stati Uniti e Giappone). Questo è il motivo per cui capita a volte che i giochi giapponesi appaiano in video più fluidi rispetto a quelli occidentali.

La scansione interlacciata comporta dei problemi piuttosto fastidiosi, specie nel caso di soggetti in movimento. Il problema principale si manifesta quando – proprio a causa della velocità – un soggetto si trova in due posizioni diverse nei due semiquadri dello stesso fotogramma.
La scansione progressiva fa sì che tutte le linee di un fotogramma vengono proiettate in sequenza, senza la suddivisione in semiquadri di cui sopra. Lo svantaggio principale è che richiede una quantità di banda maggiore rispetto alla modalità interlacciata, ma i risultati sono nettamente superiori, e non si hanno problemi di visualizzazione nel caso di soggetti in rapido movimento, né il classico e fastidioso sfarfallio della soluzione alternativa.

 

PPI: la definizione dell’immagine

Il valore di PPI (Pixel per Inch, o pixel per pollice quadrato) indica la densità dei pixel che compongono un’immagine, sia nella grafica di un videogame che in qualunque altro ambito. Più alto è il valore di PPI, più l’immagine risulterà definita, con un effetto pressoché identico all’aumento della risoluzione.
Il valore di PPI dipende dal display su cui visualizziamo il contenuto. Idealmente, si ha un buon valore di PPI quando osservando uno schermo non siamo in grado di distinguere i singoli pixel, e l’immagine risulta di conseguenza “pulita”.
Il problema fondamentale è che la nostra capacità di percepire i pixel dipende dalla distanza da cui osserviamo il pannello. Ad esempio, mentre guardiamo la TV l’occhio tende a non notare i singoli pixel, perché la distanza è di solito consistente. Discorso opposto invece con gli smartphone, utilizzati più da vicino.

Nel corso degli anni varie aziende hanno cercato di dire la propria in merito al PPI, su tutte Apple con il suo Retina Display. Apple sostiene infatti che esistano dei precisi valori di densità che, se incrementati, non apporterebbero nessun beneficio alla qualità finale dell’immagine percepita.
Secondo l’azienda di Cupertino, tali valori consistono in circa 320 PPI su pannelli di piccole dimensioni (che quindi osserveremo da distanza ravvicinata), e circa 220 PPI per pannelli di dimensioni maggiori.
Com’è chiaro, si tratta esclusivamente di scelte commerciali e di marketing, che non hanno alcun fondamento scientifico.

grafica videogame PPI, girasoliE’ comunque vero che, superati certi valori, incrementare la densità dei pixel non ha un impatto determinante sulla qualità dell’immagine.
Come potete vedere dall’immagine qui affianco la curva nell’incremento qualitativo non è lineare. Passare da 100 a 200 PPI ha un impatto decisamente superiore a quanto otterremmo passando da 300 a 600 PPI. Questo è il motivo per cui produrre pannelli con risoluzioni eccessive ha un effetto solamente dannoso sul dispositivo, necessitando maggiore potenza di calcolo da parte del processore, e un consumo energetico maggiorato.

Come generale riferimento, consideriamo circa 450 PPI ideali in uno smartphone, circa 200 PPI ideali in un monitor PC, circa 150 PPI ideali in una TV.
Parliamo per l’appunto di condizioni ottimali, a fronte di una situazione consumer che vede una media di 350 PPI in uno smartphone di fascia alta, circa 100 PPI in un monitor gaming standard e circa 70 PPI in una TV Full HD (riferimento a 32 pollici). Col passare degli anni e con l’incrementare della risoluzione tali valori aumenteranno.



GPU – Il cuore della grafica dei videogame

Le GPU sono le unità incaricate di processare la stragrande maggioranza delle informazioni nella grafica di un videogame. La GPU può essere integrata nel processore (SoC) o dedicata (scheda video), ma in tutti i casi si occupa del rendering, ovvero del calcolare e realizzare un’immagine utilizzando degli algoritmi che indicano il colore di ciascun pixel in ogni fotogramma.
Attualmente le più grandi aziende impegnate nella produzione di GPU dedicate sono Nvidia e AMD. Le console fisse di corrente generazione utilizzano soluzioni AMD.
La GPU è un elemento fondamentale per definire le potenzialità grafiche di una piattaforma, surclassando l’importanza della CPU.
Non esistono valori univoci per identificare quanto una scheda video sia performante.
Come regola generale, il numero di transistor, la banda passante e la tipologia del chipset sono i principali elementi da tenere in considerazione.

Nel corso del tempo, più aziende hanno cercato soluzioni diverse per migliorare l’esperienza grafica dei videogame, brevettando tecnologie che apportavano incrementi prestazionali o che implementavano una migliore gestione dell’effettistica. Nomi come Nvidia PhysX o 3D Video Surround, o ancora AMD TressFX Hair o Mantle rappresentano l’impegno delle diverse aziende nel settore gaming, dove si danno battaglia tra punti di forza e debolezze che non permettono di eleggere un reale vincitore su tutta la linea.

Come funziona una GPU

La scheda video ha il compito di calcolare e mandare a schermo la grafica dei videogame (nella fattispecie). Evitando di scendere troppo nel dettaglio, la GPU calcola i pixel che andranno a comporre l’immagine, mentre la CPU si occupa di inviare alcuni dati geometrici che permetteranno di realizzare la grafica di gioco.
In un gioco 3D, quasi tutti gli elementi presenti a schermo sono costruiti su strutture fatte da triangoli, com’è possibile vedere nell’immagine qui sotto. Per comodità, si identificano i triangoli come semplici poligoni.

Poligoni e texture in un modello, grafica videogame

Parlando di grafica poligonale 3D, il processore (CPU) avrà il compito di calcolare i vertici dei singoli poligoni, inviandone le posizioni alla GPU. Sarà quest’ultima a realizzare l’immagine finale, applicando le texture, ovvero le immagini 2D che andranno a ricoprire ciascuna faccia dei poligoni.
Possiamo immaginare quindi le texture come se fossero dei rivestimenti, la “pelle” che ricopre il modello di base. Le texture necessarie alla realizzazione delle immagini vengono conservate nella RAM video (VRAM), una memoria veloce che la GPU utilizzerà per leggere e applicare le immagini 2D ai poligoni. La maniera in cui la texture verrà applicata sarà determinata dalla tipologia e dalla quantità di effetti presenti nel videogame stesso, che potranno modificare la grafica finale in maniera drastica. Qui sotto possiamo vedere ad esempio cosa accade utilizzando lo stesso modello poligonale e la stessa texture sia per l’albero che per le foglie, modificando però il tipo di shader dell’immagine.

shader nella grafica dei videogame 3D

Gli shader sono una delle funzioni più importanti per determinare il realismo e la qualità grafica dell’immagine finale. Altre funzioni di primissima importanza sono i filtri e in generale il rendering, ovvero l’ultimo passaggio compiuto dalla GPU dopo aver calcolato la scena.
E’ solo a questo punto infatti che vengono applicati tutti quegli effetti finali o di post processing, ciò che fa cadere la mascella a terra ai più sensibili alla grafica.
Riassumendo dunque in maniera molto schematica, questo è ciò che avviene nei nostri computer/console:

  1. La CPU invia istruzioni geometriche alla GPU
  2. La GPU interpreta i dati e crea le forme poligonali
  3. Se presenti informazioni di Tessellation, la GPU frammenta i poligoni in poligoni più piccoli
  4. La GPU applica gli shader e ottiene i colori
  5. La GPU realizza il frame finale, ovvero l’immagine che vedremo



Shaders – Materiali diversi e luci diverse

Gli Shaders indicano a ciascun oggetto in che modo comportarsi nei confronti della luce. Ciascun materiale reagisce infatti in maniera diversa quando viene illuminato, e gli shader dicono al materiale in che modo simulare cose come la diffusione luminosa, la riflessione, la rifrazione o la dispersione.
Considerata l’enorme mole di elementi nella grafica di un videogame, creare shader con regole di comportamento specifiche per ciascun oggetto è utilissimo per risparmiare tempo e ottimizzare il lavoro.
Elencare le differenze tecniche tra le versioni di Shader Model sarebbe inutile, dunque vi proponiamo a seguire delle immagini che possono rendere l’idea dell’impatto che gli shader sulla grafica di un videogame.

Call of Juarez: DirectX 9 e DirectX 10 a confronto


Demo: DirectX 10 e DirectX 11 a confronto
Gli effetti della Tessellation sulla tridimensionalità, sulla definizione e sulla quantità di poligoni per modello.

Un commento

Lascia una risposta

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