L’aspetto tecnico dei videogame è l’unico a subire costanti miglioramenti nel corso degli anni. Le console della corrente generazione riescono a gestire motori grafici complessi, districandosi tra una immane mole poligonale ed una miriade di effetti di post processing. Tuttavia comprendere la tecnica alle spalle di un videogame può essere complicato, soprattutto se non si ha particolare dimestichezza con l’ambiente PC, da sempre all’avanguardia in questo campo. Chi gioca con un personal computer deve, per forza di cose, imparare ad ottimizzare le opzioni grafiche dei vari titoli in relazione alla propria configurazione hardware, cosa che invece non accade all’ utenze console. Questa guida si propone di analizzare alcuni aspetti che riguardano la grafica e la tecnologia in ambito videoludico. Partendo da concetti basilari ed approfondendo fino al post-processing si offrirà una panoramica generale sull’argomento, senza scendere in dettagli eccessivamente tecnici per questa sede.
Il motore grafico
Tante volte tra queste pagine vi sarà capitato di leggere nomi come Unreal Engine, Luminous Engine, Cry Engine e via dicendo. Si tratta di motori grafici, ovvero il centro intorno a cui ruota un videogame. Il motore grafico è a tutti gli effetti un programma, esattamente come un browser web, o un editor di immagini, o un programma di videoscrittura. Considerata però la loro complessità sarebbe meglio definire i motori grafici come un insieme di programmi o un programma che gestisce tutti i diversi elementi di un videogame. Il motore grafico possiede al suo interno un motore di rendering, ovvero un elemento che interpreta il codice e lo traduce nelle immagini che vediamo a schermo. Altri elementi di un motore possono essere quello dedicato alla gestione della fisica, del suono, del networking e via dicendo. Un motore grafico porta un gran numero di vantaggi, che consistono prima di tutto in una notevole riduzione dei costi e dei tempi di sviluppo. Inoltre ideare un motore intorno ad una tipologia di gioco permette di ottimizzare la successiva fase di produzione. Di recente Square-Enix si è decisa a realizzare un motore grafico di questo tipo, quel Luminous Engine da poco presentato al pubblico, software espressamente strutturato intorno ai JRPG. Qualcosa di simile era stata fatta in passato da Lucas Arts, quando creò un motore denominato S.C.U.M.M. (Scrip Custom Utility for Maniac Mansion), sul quale costruì le sue avventure grafiche bidimensionali.
A partire dagli anni ‘90 e con l’introduzione della grafica tridimensionale nei videogames, i motori grafici hanno cominciato a diffondersi rapidamente, soprattutto sotto la spinta di John Carmack e di ID Software. Da qualche anno a questa parte invece sono invece Mike Capps, Mark Rein e Cliff Bleszinsky con la loro Epic Games a dettare legge in questo campo, in particolare grazie al vendutissimo Unreal Engine. Il motivo che ha spinto un gran numero di software house ad acquistare il software di Epic è da ricercare nella grande versatilità del prodotto che, nonostante sia nato pensando agli FPS, si ritrova oggi ad essere utilizzato anche in giochi action (Gears of War), MMORPG (Tera), Adventure (Batman: Arkham Asylum), JRPG (Lost Odyssey) e via dicendo. A questo va ad aggiungersi l’estrema scalabilità del software, caratteristica già presente nella terza incarnazione, ma adesso ulteriormente sviluppata con la quarta versione del motore. E’ il motivo per cui UE3 riesce a girare su tablet e smartphone di fascia alta, ed è anche il motivo per cui UE4 riuscirebbe in via teorica a funzionare su console ormai anziane come PS3 ed Xbox 360.
La risoluzione
Durante l’attuale generazione di console, in molti si sono ritrovati ad acquistare una TV HD. La differenza rispetto ai precedenti televisori stava nella risoluzione, ovvero quel valore numerico che definisce il numero di linee di cui è composta l’immagine a schermo. Ad esempio, quando sentiamo parlare di 1920×1080 (Full HD) si intende dire che l’immagine è composta da 1920 colonne per 1080 righe. Più alto è il valore della risoluzione maggiore è il numero di elementi (pixel) presenti sullo schermo, più alta sarà la definizione dell’immagine. Con l’attuale tecnologia, Wii genera immagini a 480p, mentre PS3 ed Xbox 360 a 720p poi upscalati a 1080i o 1080p (in rarissimi casi PS3 gestisce alcuni software nativamente a 1080p). La situazione PC è diversa: lo standard è qui un 1080p nativo, ovviamente impostabile dall’utente in base alla propria configurazione hardware. Con i monitor più recenti da 27 a 32 pollici la risoluzione nativa sale a 2560 x 1600, risultato al momento impensabile anche per la prossima generazione di console. Nel caso di configurazioni PC di fascia alta a doppia GPU e soluzioni multimonitor si arriva invece all’incredibile valore di 3840 x 2400. Il prossimo passo tecnologico in campo televisivo e sopratutto cinematografico dovrebbe essere il 4K (risoluzione di 4096 x 3072), con commercializzazione al momento prevista da Samsung ed LG per il 2017 su mercato consumer. Fino ad allora è probabile che i software console verranno sviluppati a 1080p nativi nella stragrande maggioranza dei casi. I più attenti avranno notato che poche righe fa abbiamo parlato di 1080p e 1080i. Ma di cosa si tratta esattamente?
La “p” e la “i” poste accanto ad un valore di risoluzione stanno per Progressivo e Interlacciato. La tecnica dell’interlacciamento permette di risparmiare banda nel segnale video. Maggiore è la banda maggiore è anche il costo del sistema di proiezione. Per non voler scendere in informazioni troppo dettagliate si tratta di una tecnica che divide in due le righe che compongono un’immagine, separando quelle pari da quelle dispari. Fino a pochi anni fa i televisori PAL producevano 50 semiquadri al secondo, ovvero 25 di linee pari e 25 di linee dispari. Ciò significa che in totale l’immagine veniva proiettata a schermo 25 volte al secondo (50/2). Il problema nel video interlacciato sta nella scarsa qualità dello stesso rispetto al sistema progressivo, soprattutto per quanto riguarda immagini in movimento e sfarfallio.
Nel sistema Progressivo invece le linee che compongono le immagini vengono scansionate una dopo l’altra, con un effetto qualitativo nettamente superiore all’interlacciamento, ma anche richieste di banda decisamente maggiori. Lo sfarfallio viene però del tutto eliminato, così come gli artefatti nelle scene in movimento. In linea di massima è preferibile avere una risoluzione inferiore ma Progressiva piuttosto che una superiore ma Interlacciata. Tra un possibile 1080i e un 720p la seconda sarà in generale qualitativamente migliore della prima. L’incremento di risoluzione è, insieme agli shader, uno dei due elementi che maggiormente influenzano i requisiti hardware per far girare un software. A dirla tutta un incremento di shader tende ad essere molto più pesante che uno o due salti in avanti nella risoluzione, ma restano comunque i due fattori in assoluto più pesanti da gestire, seguiti a ruota da Tessellation ed Anti Aliasing.
Gli effetti
Il reale impatto estetico di un videogame dipende – oltre che dalla fondamentale direzione artistica – dagli effetti grafici che condiscono il tutto. Andiamo a vedere i più importanti:
Shaders
Gli shader sono degli strumenti molto potenti e complessi, nonché estremamente pesanti in quanto a risorse hardware. Si tratta di istruzioni che andranno a calcolare in base al tipo di superficie gli effetti di rifrazione, riflessione, ombreggiature tridimensionalità, diffusione e, se abbastanza evoluti, effetti fisici come le collisioni e il movimento dei liquidi. Al momento vengono utilizzati gli Shader 5.0. La variazione degli shaders in un videogame è ciò che maggiormente impatta sulla percezione grafica dello stesso. Ecco un raffronto tra Shader 3.0 (DirectX9) e Shader 4.0 (DirectX10).
Normal Mapping
Il Normal Mapping è un effetto che, attraverso un uso particolare delle illuminazioni, simula le irregolarità in un modello poligonale, arricchendone la definizione senza aggiungere poligoni. Pensiamo ad una roccia: questa verrà disegnata usando un certo numero di poligoni, ma si tratterà pur sempre di strutture geometriche “lisce”, inadatte a rappresentare le increspature, i buchi, gli spigoli e i vari dettagli di una roccia. Col normal mapping avremo invece una superfice che sembrerà avere rilievi e profondità, attraverso un gioco di luci che ingannerà l’occhio umano. Affine al normal mapping ma meno esoso in termini hardware è il bump mapping, tecnologia più vecchia e che funziona in maniera diversa, ma lavora nello stesso ambiente.
Antialiasing
L’alias (gradino) è il classico effetto di scalettatura presente nella stragrande maggioranza dei giochi. Si tratta di un artificio causato dalla struttura stessa del monitor che, essendo formato da pixel, va a creare dei veri e propri scalini nelle strutture poligonali che compongono la grafica. L’antialiasing o antialias è un effetto che ammorbidisce e sfuma i contorni in modo da attenuare il problema. Il risultato sono linee curve molto più pulite e gradevoli alla vista. Le console moderne usano dei filtri antialias piuttosto vecchi. Su PC si preferisce invece il MMAA (Multi Sampling Antialiasing).
Filtering
Il filtro attualmente più utilizzato è chiamato Anisotropic. Suoi predecessori sono stati il Bilinear ed il Trilinear Filtering. Il filtro anisotropico, oltre ad attenuare l’effetto di aliasing, aumenta la qualità visiva delle texture inclinate rispetto al nostro punto di vista. Quando ad esempio in un videogame stiamo camminando per una strada, un’assenza di filtro causerebbe uno sfuocamento del nostro sentiero oltre una certa distanza. Le rocce, la terra e gli elementi ambientali apparirebbero impastati e confusi, mentre il filtro anisotropico renderebbe il tutto estremamente più nitido. Su PC si tende ad usare un filtro anisotropico 16x. Su console difficilmente si arriva alla metà.
HDRR
Utilizzato per la prima volta in un gioco 3D da Valve, l’High Dynamic Range Rendering è un effetto grafico che gioca con le fonti di luce e la loro intensità. Ciò che permette è di raffigurare oggetti che abbiano una luminosità superiore a quella del monitor su cui si gioca, creando un effetto abbagliante che vada poi a diffondersi nell’ambiente circostante. Grazie all’HDR rendering le fonti di luce possono essere molto più intense, i neri più profondi e allo stesso tempo i dettagli possono essere lasciati in evidenza, donando un effetto simile alla percezione della vista umana. Ciò si applica anche agli effetti di rifrazione sulle varie superfici, in concomitanza con i vari shader.
Tessellation
La Tessellation è una tecnologia caratteristica delle DirectX11, che consiste nel dividere un poligono in tanti altri poligoni di dimensioni inferiori. Questi elementi più piccoli verranno quindi utilizzati attraverso una tecnica chiamata displacement mapping. Una displacement map è una texture che ha in memoria dei valori di altezza. Al momento di ricreare l’oggetto tutti i piccoli poligoni verranno fissati alle diverse altezze, creando varie profondità sulla superficie dell’oggetto stesso, ed ottenendo una superfice dallo spessore irregolare così come nella realtà. Mentre quindi il normal mapping simula una tridimensionalità sulle texture, la tessellation va oltre, creando un gran numero di poligoni in più che aumentano esponenzialmente il realismo degli elementi.
Avere un’idea di cosa abbiamo davanti mentre giochiamo può essere molto utile, soprattutto alla luce delle frequenti discussioni online su quale console abbia l’e-penis più lungo. Quelli di cui abbiamo parlato in questo articolo non sono altro che strumenti, mezzi a disposizione degli sviluppatori affinché riproducano idee, progetti e fantasie. Strumenti potenti, ma pur sempre strumenti, teniamolo a mente. Ricordiamoci ciò che è vero per ciascuno di noi: abbiamo cominciato a videogiocare perché era divertente, questo è ciò che ha sempre contato più del resto e così dovrebbe sempre essere.
Speriamo che queste informazioni possano essere utili e che, soprattutto, possano aiutarci a comprendere meglio il lavoro che c’è dietro ogni gioco cui decidiamo di dedicare il nostro tempo.