La Grafica


L'immagine e' uno dei principali mezzi di espressione degli umani, ed il mezzo preferito per ottenere informazioni dall'ambiente circostante; per questo, appena la tecnologia lo ha permesso, ed anche prima, si e' cercato di utilizzare il computer per produrre immagini.

La produzione di immagini, anche in movimento, e' strettamente correlata, e trova applicazione, nella progettazione meccanica, nelle simulazioni matematiche complesse, nella rappresentazione grafica dei dati, nei sistemi di addestramento dei piloti e, soprattutto, nei videogiochi; il mercato dei videogiochi e' sempre stato molto ricco, ha avuto grandi ricavi, investimenti e risorse, e per questo lo sviluppo della grafica e' andato di pari passo con lo sviluppo dei videogiochi per computers, arcade e consolle; anche la cinematografia e' stata importante per lo sviluppo della grafica; dagli anni 80 si e' sempre piu' usata la grafica avanzata per gli effetti speciali, fino a trasformare il mercato dei cartoni animati, producendo film con modelli animati invece che figure disegnate (Toy Story 1995), od a produrre film completmente privi di attori reali (Final Fantasy, the spirit whitin, 2001).

Oggi (2008) la grafica e' effettuata sui PC con apposite schede grafiche, che sono veri e propri computer dedicati, con centinaia di megabyte di memoria e piu' unita' di calcolo specializzate, che lavorano in parallelo, su diverse parti dell'imagine (macchine parallele di tipo SIMD : single instruction-multiple data).

L'immagine viene trattata in hardware, secondo la procedura che e' chiamata "pipeline grafica" :

Sono chiamate "vertex shaders" le unita' di calcolo che operano sui vertici dei triangoli, ad esempio per le trasformazioni geometriche ed il calcolo delle luci; sono chiamate "pixel shaders" le unita' che operano sui singoli punti dell'immagine nelle ultime fasi della pipeline, ad esempio per calcolare i colori dei singoli punti dell'immagine. Apposite unita' trattano le texture.

Chi sviluppa software non deve direttamente interfacciarsi con la complessa logica interna delle schede grafiche, diversa da scheda a scheda e tenuta rigorosamente segreta dai fornitori, ma utilizza nei suoi programmi chiamate a funzioni ben definite (API: application programming interface), queste fanno riferimento a librerie grafiche, che il fabbricante distribuisce assieme alle schede. Negli anni 2000 sono in uso essenzialmente 2 API: le OpenGL, uno standard aperto, sostenuto da un consorzio di fornitori. e le Direct3d, una componente delle librerie DirectX della Microsoft, che vanno solo su Windows.

Dal 2001-2002 sono anche disponibili schede grafiche con vertex e pixel shaders programmabili, ove, con un linguaggio particolare, si possono ridefinire gli algoritmi per il trattamento dei vertici e pixels.

Nel 2007 il mercato delle schede grafiche e' dominato da 2 grossi fornitore: NVIDIA ed ATI, si parla anche di integrare la pipeline grafica nelle CPU, in quest'ottica va vista l'aquisizione di ATI da parte di AMD, ed i progetti della Intel per entrare nel mercato delle schede grafiche.

Una grande spinta allo sviluppo della grafica avanzata viene dal mercato delle consolle da gioco, come la Playstation della Sony, il Gamecube della Nintendo e l'Xbox della Microsoft. Playstation e Gamecube si permettono lo sviluppo di CPU custom, in un periodo in cui perfino i supercomputer utilizzano come CPU componenti standard, di Intel od AMD, le stesse dei PC.