6 gen 2010

Librerie grafiche

Le DirectX hanno contribuito a rendere unica e "reale" la nostra esperienza di gioco sul PC. Vediamole da vicino.
Nel corso degli anni il computer è divenuto un vero e proprio centro d'intrattenimento. Oggi con il PC possiamo giocare, ascoltare musica, guardare film e passare da un programma televisivo
all'altro con un clic. Se andiamo con la memoria alle vecchie finestre DOS non possiamo non chiederci come sia stato possibile raggiungere questi risultati. Il merito dell'evoluzione multimediale dei nostri computer si deve in gran parte ai videogiochi, divenuti ormai così realistici da richiedere un'enorme potenza di calcolo. Infatti ad affiancare il processore sono arrivate le schede video accelerate in grado di elaborare in modo autonomo un mondo virtuale a tre dimensioni. Molti di noi ricorderanno sicuramente le schede grafiche di 3DFX, uscite una decina di anni fa e chiamate Voodoo: il primo grande passo verso una grafica che a quei tempi era definita "realistica".
Queste schede, ad ogni nuova release divenivano sempre più potenti in quanto erano equipaggiate con un nurnero sempre maggiore di funzioni grafiche.
Per evitare ai programmatori di riscrivere un programma per ogni nuovo processore grafico, 3DFX creò la libreria Glide che consentiva di ottenere un codice indipendente dal modello di scheda utilizzato. Negli stessi anni anche altre società hanno sviluppato librerie simili (come le OpenGL di Silicon Graphics) allo scopo di fornire ai programmatori uno strumento semplice per creare ambienti multimediali sfruttando le risorse a disposizione. Ben presto, Microsoft rilasciò le sue librerie grafiche DirectX. Nate per sostituire il sistema grafìco di Windows 3.11 e dare accesso
ai nuovi chip grafìci e audio che si stavano affacciando sul mercato,queste librerie utilizzavano due tipi di driver: HAL (Hardware Abstraction Layer) e HEL (Hardware Emulation Layer). Grazie ad essi, quando un programmatore utilizzava una funzione grafica non doveva più chiedersi se la scheda su cui avrebbe girato il gioco la supportava, erano le DirectX a deciderlo: se la scheda era compatibile veniva usata la funzione del driver HAL che si interfacciava con il processore grafico, altrimenti la funzione veniva emulata attraverso il driver HEL. Il vantaggio era indiscutibile: acquistando un gioco compatibile con le DirectX che sfruttava una certa caratteristica, non presente sulla nostra scheda video, eravamo sicuri che girava comunque; cambiando scheda grafica con una compatibile, avremmo potuto godere immediatamente dell'effetto aggiuntivo. Successivamente le DirectX hanno raggiunto altri ambiti e sono state aggiunte nuove librerie
multimediali per la gestione delle schede audio, dell'ambiente Windows e la riproduzione video.
A questo punto potremmo chiederci perché, se le Directx sono state progettate per eliminare le incompatibilità tra il software e l'hardware, sui giochi si tova la dicitura "Richiede una scheda compatibile DirectX 9.0” La risposta è semplice: in 10 anni l'hardware è cambiato completamente,
siamo passati da processori a 50 MHz a quelli a 2 GHz e le librerie grafiche sono state ulteriormente sviluppate per garantire effetti e prestazioni sempre maggiori. Con le prime schede GeForce prodotte da nVidia, il processore grafico è diventato per la prima volta una GPU (Graphic Processing Unit) in grado di eseguire codice adattabile ai bisogni del programmatore. La versione
7.0 delle DirectX ha seguito questa evoluzione, rinunciando però alla compatibilità con le vecchie versioni. Infatti, i primi giochi che richiedevano una GPU non potevano più girare sulle schede precedenti o dovevano essere eseguiti in una modalità compatibile ma con una visualizzazione grafica nettamente inferiore. Se da un lato le GPU hanno sollevato la CPU da un'enorme carico di lavoro, dall'altro i programmatori hanno richiesto sistemi grafici sempre più potenti. Si è quindi deciso di separare nettamente i compiti in unità di elaborazione ancora più specializzate chiamate
Shader. Le DirectX 8.0 hanno definito due tipi di Shader: il Vertex Shader effettua calcoli su poligoni ed oggetti 3D, mentre il Pixel Shader applica effetti di illuminazione e texture per aumentare il realismo della scena. Ogni processore grafico contiene più shader che lavorano in contemporanea, mentre il loro numero viene ridefinito ad ogni versione della libreria. In poche parole, se un gioco ha tra i requisiti richiesti la compatibilità DirectX 9.0, vuol dire che per funzionare ha bisogno di un certo numero di shader, in mancanza dei quali non riuscirebbe a rappresentare gli oggetti richiesti.
Accanto al comparto grafico hanno avuto una più modesta, ma interessante, evoluzione anche le schede audio. Siamo infatti passati dal suono stereo a quello surround e a sistemi di casse 7.1 per una totale immersione nell'ambiente sonoro. Le schede audio "accelerate" sono dotate di un processore programmabile che può sostituire in parte la CPU nell'applicazione di effetti o nella conversione di fonti sonore e sono gestite dai programmi in modo trasparente grazie alla libreria DirectSound. L’ambito di utilizzo delle DirectX non è stato limitato, però, ai soli PC ma si è esteso anche alle console. Questo va a tutto vantaggio delle software house che possono produrre un gioco e adattarlo velocemente per l'uscita su Xbox e PC senza ricorrere a grossi investimenti. Basti pensare che anche la GPU di Playstation 3 è perfettamente compatibile con le DirectX9.0c.
Con l'arrivo di Windows Vista i PC finalmente possono fornirci un'interfaccia tridimensionale su più ambienti contemporaneamente, ad esempio un videogioco 3D che gira in una finestra anch’essa 3D. Microsoft ha rivisto completamente la gestione dei driver video e l'interazione delle DirectX, tanto che la versione 10.0 di queste ultime può girare solo su Vista. Aero Glass, l'interfaccia del sistema operativo, utilizza esclusivamente la libreria DirectX 9.0L e richiede persino una scheda video con Pixel Shader 2.0 per realizzare gli effetti di trasparenza e l'effetto Flip3D per la scelta
della finestra attiva. Il futuro riserverà un ruolo sempre più centrale ai processori grafici:presto avremo schede video con piùr di 20 shader che elaboreranno la maggior parte del lavoro, dalla trasformazione di oggetti 3D fino alla gestione della fisica nel mondo virtuale. L’evoluzione
ha ripreso il suo cammino, non resta che seguirla e goderne i frutti.
Con l'uscita di Windows Vista Microsoft ha rivisto le librerie Direct3D allo scopo di implementare numerose migliorie richieste dai videogiochi di ultima generazione. Riducendo i tempi di inattività del processore grafico, che resta spesso in attesa che la CPU trasferisca i dati alle librerie grafiche, le DirectX 10 sono in grado di rappresentare un maggior numero di oggetti tridimensionali. Integrano inoltre una nuova unità, chiamata Geometry Shaker, che può eseguire modifiche alla scena senza interrogare il sistema centrale e stabilire dinamicamente quali oggetti sono nascosti e possono essere scartati. Grazie a questi accorgimenti le schede video vengono sfruttate a fondo riducendo al minimo lo spreco di risorse.
image 
Confrontato con le versioni precedenti, il reallsmo raggiunto dalla versione 10 delle librerie DirectX è davvero elevato. Come possiamo notare nella foto, sfondi, oggeti e corpi in movimento sono rappresentati con la massima fedeltà.
le librerie grafiche Microsoft sono costituite da diversi componenti che semplificano l'accesso alle funzioni multimediali più importanti.

Componente Utilizzato per..
Direct3D la gestione degli ambienti grafici 3D e dei vari effetti visivi.Fornisce un’interfaccia di controllo per le funzioni avanzare de processore grafico.
DirectDraw accelerare la gestione delle finestre e delle immagini in ambiente Windows. Nelle DirectX 10 è stata sostituita interamente da Direct3D.
DirectSound fornisce un’interfaccia tra le applicazioni e le schede audio e consente di ottenere effetti sonori d’ambiente.
DirectInput controllare le periferiche di gioco come gamepad o cloche.Non è stata più aggiornata dalla 8.0 .
DirectPlay fornisce funzioni semplificate per la realizzazione di giochi multiplayer on-line.Non viene più utilizzata.
DirectX Media per garantire la visualizzazione e la protezione di contenuti multimediali quali video, musica ed animazioni Web mediante l’uso di plug-in e codec.

Nessun commento:

Posta un commento