Le pipeline:
Si tratta della principale unità di elaborazione presente all'interno di un chip grafico; ve ne possono essere più di una, operanti in parallelo, e a seconda della frequenza di clock utilizzata, esse generano un determinato numero di pixel per secondo; è possibile ottenere il Fill-Rate di un chip grafico proprio moltiplicando la frequenza di clock per il numero di pipelines presenti nel chip in questione.
Il numero di pipeline influisce direttamente sul fill-rate del chip grafico, specificatamente sul numero massimo di pixel generati al secondo (per ogni ciclo di clock vengono renderizzati tanti pixel quante sono le pipeline).
Essenzialmente, i
Pixel Shaders consistono in una serie istruzioni che eseguono operazioni di elaborazione dei dati colore (RGB) che vengono associati al singolo pixel, e che riguardano sia il calcolo, la miscelazione e l'applicazione di texture, sia i calcoli dei valori che definiscono l'illuminazione che agisce su di esso, coinvolgendo un numero di operazioni matematiche molto elevato. A differenza dei Vertex Shaders, che possono essere processati tranquillamente in software senza che questo pregiudichi la funzionalità del resto delle operazioni in hardware, essi, per funzionare, necessitano invece di un hardware con una architettura appositamente predisposta, in quanto la loro funzionalità consiste proprio nell'avere a disposizione un processore di calcolo specifico e dei registri "ad hoc", che vengano caricati coi dati e processati da istruzioni specifiche di un software altrettanto predisposto (applicazione e API).
Vertex Shader. Questo processore vettoriale piùttosto potente si prende in carico tutta la fase di transform & lighting dei triangoli ma non si ferma qui, perchè può essere riprogrammato per eseguire moltissimi altri effetti. In breve si tratta di un processore SIMD (Single Instruction Multiple Data) capace di manipolare vettori da 128bit in ingresso (4 floating point a 32bit) secondo le istruzioni contenute in una apposita memoria (max 128 istruzioni); un banco di registri e una memoria di costanti fanno da corollario ad una potente unità di elaborazione capace di eseguire 17 tipi diversi istruzioni sui vettori contenuti nel buffer di ingresso, nel banco dei registri, e nella memoria delle costanti
Il Vertex Shader ha il compito di fornire al successivo stadio di "clipping & triangle setup" dei triangoli completamente trasformati, illuminati e proiettati nello spazio dell'osservatore; le operazioni da eseguire sono quindi numerose ma una serie di istruzioni fatte ad hoc permette di svolgere questi compiti in tempi "relativamente" brevi.
