Effetti visivi

In questa seconda parte della nostra guida alla tecnologia grafica facciamo una panoramica delle caratteristiche dei processori grafici e degli effetti visivi dei moderni videogiochi. Approfondiamo anche i criteri che possono aiutare a confrontare più schede video per giungere a un acquisto intelligente.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Effetti visivi

Oltre alle specifiche hardware nude e crude, differenti generazioni e modelli di processori grafici offrono effetti grafici diversi. Per esempio, viene spesso menzionato che le ATi Radeon X800 XT sono compatibili con lo "Shader model 2.0b", mentre le Nvidia GeForce 6800 Ultra sono compatibili con lo "Shader Model 3.0, anche se le specifiche hardware sono molto simili (architettura a 16 pipeline). Molte persone basano la propria scelta su queste informazioni addizionali, senza però sapere veramente cosa significhino. Diamo ora un'occhiata agli effetti visivi e a cosa implicano per gli utenti finali.

Versione delle DirectX di Microsofto e dello Shader Model

Questi termini sono probabilmente i più popolari e allo stesso tempo i più incompresi. Per capirne il significato, raccontiamo la breve storia della API grafiche. DirectX e OpenGL sono due API grafiche. L'acronimo API significa Application Programming Interface, ed essenzialmente identifica uno standard di programmazione accessibile a chiunque.

Prima delle API grafiche 3D, ogni produttori di schede grafiche aveva il suo metodo proprietario di funzionamento con i giochi. Per offrire un gioco che supportasse tutte le schede video, gli sviluppatori erano costretti a programmare i giochi seguendo le specifiche di tutti i produttori. Questa metodologia era molto costosa ed inefficiente. Per risolvere questo problema furono create le API grafiche 3D, in maniera tale che gli sviluppatori potessero programmare il proprio software in maniera tale che fosse compatibile con le API, senza dover sbattere la testa sulle specifiche di ogni hardware. La responsabilità della compatibilità era quindi spostata al produttore della scheda grafica, che doveva assicurarsi che i driver fossero compatibili con le API.

L'unica complicazione era legata all'esistenza di due API differenti, entrambe le quali esistono ancora oggi. Le due API in contrasto sono le Microsoft DirectX e lo standard OpenGL, dove GL sta per Graphics Library. Siccome le API DirectX hanno più influenza sulla tecnologia hardware, almeno per quanto concerne i videogiochi, ci concentreremo  sulle DirectX.

Le DirectX sono una creazione di Microsoft. In realtà, le DirectX sono una collezione di API, dove solo una riguarda la grafica. Le DirectX includono API per i suoni, la musica, i dispositivi di input e multimediali, ecc.. Le specifiche API DirectX applicate alla grafica sono chiamate Direct3D.

Le DirectX sono periodicamente aggiornate considerando l'evoluzione della tecnologia hardware e la necessità degli sviluppatori di avere sempre più metodi di programmazione per creare effetti sempre più coinvolgenti. Con l'aumentare della popolarità delle DirectX, i produttori di processori grafici hanno iniziato a creare progetti che utilizzavano tutte le funzionalità DirectX. Per questa ragione le schede grafiche sono spesso descritte come compatibili con una tal versione DirectX.

Per complicare maggiormente la situazione, alcuni pezzi delle API Direct3D (o DirectX) possono cambiare prima di un completo passaggio di versione. Per esempio, le DirectX 9.0 contengono il supporto al Pixel Shader 2.0; le DirectX 9.0c contengono il supporto alle specifiche Pixel Shader 3.0. Questo significa che non tutte le schede grafiche DirectX 9 supportano le stesse caratteristiche; la Radeon 9700 supporta lo Shader Model 2.0, e la Radeon X1800 supporta lo Shader Model 3.0, anche se entrambe sono descritte come "schede DiretcX 9".

Tenete in mente che gli sviluppatori fanno il loro lavoro non dimenticando mai i componenti hardware più vecchi, dato che ignorare le schede video più vecchie vorrebbe dire limitare molto il mercato. Perciò, gli sviluppatori solitamente programmano differenti "modalità" nel gioco, per supportare hardware più vecchio. Un gioco della classe "DirectX 9" può integrare una modalità DirectX 8 e una DirectX 7, offrendo la retro-compatibilità. Solitamente queste modalità mancano di effetti grafici che le nuove schede grafiche permettono invece di riprodurre.

Molti giochi moderni richiedono l'installazione dell'ultima versione DirectX, anche se la scheda grafica è precedente al rilascio dell'ultima versione delle API di Microsoft. In poche parole può capitare che un gioco che usa solo tecnologia DirectX 8 e funziona tranquillamente su hardware compatibile con DirectX 8 richieda invece la versione 9 per partire.

Ora che avete un'infarinatura generale di cosa sono le DirectX, vediamo quali sono le differenze tra le varie versioni delle API Direct3D. Le prime versioni di DirectX - 3, 5, 6 e 7 - erano relativamente semplici. Gli sviluppatori dovevano mixare gli effetti visivi scegliendoli da una lista di effetti pre-programmati. Con le DirectX 8 ci fu un notevole passo avanti, dato che integravano la possibilità di programmare gli shader e permettevano agli sviluppatori di creare dei veri e propri effetti visivi. Le DirectX 8 supportavano il Pixel Shader dalla versione 1.0 alla1.3 e Vertex Shader 1.0. Le DirectX 8.1 integravano il supporto a Pixel Shader 1.4 e Vertex Shader 1.1.

Con le DirectX 9 la complessità degli shader è stata espansa. Le DirectX 9 supportano Pixel Shader 2.0 e Vertex Shader 2.0. Le DirectX 9c sono un'aggiornamento delle DirectX 9 che include le specifiche Pixel Shader 3.0.

Le DirectX 10 sono la versione futura che arriverà con la prossima generazione di Windows, Vista. Non saranno compatibili con Windows XP.