Scheda video

Una scheda video è un componente del computer che ha lo scopo di generare un segnale elettrico (output) che possa essere mostrato a video (display). A seconda del tipo di computer questo dispositivo può essere più o meno potente: i primi modelli di scheda video potevano visualizzare solo testo; successivamente si sono diffuse anche schede video in grado di mostrare output grafici (immagini non testuali) e, recentemente, anche modelli tridimensionali texturizzati in movimento e in tempo reale. Questi ultimi tipi di scheda provvedono anche ad elaborare e modificare l'immagine nella propria memoria interna, mentre le schede 2D possono mostrare immagini 3D solo con l'aiuto della CPU che deve eseguire da sola tutti i calcoli necessari.

Modalità grafica

Quasi tutte le schede video (con pochissime eccezioni) possono poi operare anche in modalità grafica, vale a dire senza avvalersi del generatore di caratteri interno ma specificando l'immagine pixel per pixel. In questa modalità il colore di ogni pixel è specificato singolarmente, in genere usando una o più locazioni di memoria video. Questa modalità ha bisogno di molta più memoria RAM del modo testo: una schermata in modo testo occupa generalmente da 2 a 6 KB di RAM video, mentre in modalità grafica, a seconda della risoluzione in pixel e della quantità di colori usati contemporaneamente serve da 10 a 1000 volte tanto. Il modo di rappresentare del singolo pixel in memoria video varia molto a seconda del tipo di approccio usato dal costruttore e dalla particolare modalità grafica: in genere però si adotta una corrispondenza di tipo bitmap, cioè a mappa di bit.

Schede video con accelerazione 2D

Già da un po' di tempo il chip grafico è in grado di eseguire alcune funzioni grafiche in modo autonomo, senza che il processore principale debba intervenire: le schede grafiche con questi chip sono dette 2D accelerate, perché possono svolgere da sole una parte del lavoro di disegno che altrimenti spetterebbe al processore. Le operazioni più comuni da implementare in hardware sono il tracciamento di linee, di archi e di forme geometriche semplici (rettangoli, poligoni, cerchi, ellissi) e il bit blitting, cioè lo spostamento da una parte all'altra dell'immagine di blocchi di pixel. È in genere presente anche un generatore di caratteri evoluto, capace di funzionare anche in modalità grafica e di visualizzare contemporaneamente caratteri di molti font e grandezze diverse.

Schede video con accelerazione 3D

Le schede video con capacità grafiche tridimensionali (o 3D accelerate) hanno le stesse capacità bidimensionali delle precedenti, e in più ne hanno una completamente nuova, la modalità 3D appunto, in cui i pixel dell'immagine da visualizzare vengono calcolati dalla GPU (Graphics Processing Unit), fotogramma per fotogramma, partendo da una serie di dati geometrici forniti dalla CPU.

In questa modalità, la RAM video contiene una serie di sottoimmagini, le texture. Ciascuna di queste viene associata ad una particolare superficie bidimensionale di un modello tridimensionale di cui ne costituisce la "pelle": volendo, si possono considerare le varie texture come delle carte da parati elettroniche. Per ogni fotogramma (frame) da visualizzare in modalità 3D, la scheda video riceve dal processore una serie di punti geometrici (vertici) che specificano delle superfici in uno spazio tridimensionale con l'indicazione di quali texture applicare alle varie superfici: la GPU si occupa di calcolare, a partire dai dati ricevuti, se la particolare superficie sia visibile o no, e, se visibile, la sua forma in due dimensioni (coordinate schermo); poi si occupa di applicare la (o le) texture indicate. Il valore di ogni pixel viene quindi calcolato a partire da quali e quanti texel (i pixel delle texture) sono contenuti in esso.

Per fare tutto questo, le schede video 3D accelerate sono equipaggiate con una grande quantità di RAM, e ricorrono in modo massiccio al calcolo parallelo: l'integrato principale è un vero e proprio processore e viene detto GPU (anche programmabile a piacere, a partire dalla serie 6800GT di Nvidia), composto internamente di una serie di unità identiche (dette pipeline) operanti in parallelo, ciascuna su una diversa serie di pixel alla volta; poiché in grafica non vale il principio di località non è possibile usare una memoria cache come nella CPU principale, e la comunicazione con la RAM grafica deve essere estremamente veloce: questo rende necessario adottare sia una frequenza di lavoro della RAM grafica molto più alta di quella della memoria principale, sia l'adozione di bus RAM-GPU molto ampi (128, 256 bit o anche 512 bit). Per lo stesso motivo, far funzionare la GPU a frequenze molto più elevate della RAM grafica, adottando un moltiplicatore di frequenza come per la CPU principale, non porterebbe nessun beneficio prestazionale.

Ulteriori funzioni di accelerazione, utili per aumentare il livello di realismo delle immagini calcolate, sono il calcolo in hardware delle luci incidenti (Transform and Lighting o T&L), i pixel shader, il vertex shader e il rendering (rasterizzazione), il filtro anisotropico e il filtro antialiasing.

Con questa nuova architettura le schede video 3D accelerate sollevano la CPU da tutti i calcoli necessari alla visualizzazione, lasciandole solo il compito di aggiornare la geometria dell'immagine (calcolo di spigoli e vertici, di rotazioni, intersezioni, animazioni ecc.).

Le prime schede video accelerate 3D destinate al grande pubblico (prima di allora erano molto costose e riservate a professionisti) sono state le famose Voodoo della 3dfx, la prima industria a produrre schede video con capacità 3D a prezzi popolari, assorbita nel 2001 dalla concorrente Nvidia.