Ati Radeon X850 XT PE AGP
Pag. 5 - SmartShader HD (2)
Della tessera (tile) che è giunta all'unità di pipeline bisogna prima di tutto andare ad analizzare la parte visibile ed eliminare quella che, invece, comporterebbe calcoli inutili con conseguente dispendio di potenza. Qui entra in gioco l'Hierarchical Z (facente parte dell'HyperZ HD) che suddivide la tessera in blocchi di pixel e ne analizza il contenuto dello Z value, il valore che decide la profondità del pixel. Se l'intero blocco non è visibile, si scarta, altrimenti si suddivide in parti più piccole e si continua l'analisi fino a quando tutto il blocco è visibile. I pixel singoli vengono poi ripresi dall'Early Z Test che evita che pixel singoli non visibili entrino nella pipeline per essere elaborati. Una volta che abbiamo stabilito i pixel visibili, è possibile passare alla fase di assegnazione del colore. Avendo conservato i valori iniziali di colore dei vertici, la GPU procede alla colorazione del triangolo per interpolazione degli stessi.
Ogni unità di pixel shader consiste in 5 ALU: 2 vettoriali a virgola mobile a 72bit, 2 scalari a 24bit e 1 a 96bit per indirizzi texture. In queste unità di calcolo hanno luogo i costanti accessi a registri temporanei di memoria in cui si eseguono gli shader, sempre presente l'F-buffer per gli shader a più passaggi. Sono unità ottimizzate per i colori in formato RGBA con i primi 3 gestiti dalle ALU vettoriali, mentre l'ultima (Alpha) da quelle scalari.
La precisione di elaborazione è a 24bit, come specificato dalle DirectX9. Il numero massimo di istruzioni elaborabili è 512 per ciascuna delle 3 tipologie di ALU, di gran lunga maggiore del 64/64/32 permesso dalla precedente generazione. Anche i registri temporanei sono stati incrementati a 32 (12 nella precedente generazione).
A questo punto i dati passano in fase di rasterizzazione: prima eventuale nebbia, poi alpha test, poi ombre volumetriche (stencil shadows) ed infine profondità. Se inseriamo anche l'AntiAliasing, le operazioni per ciclo di clock passano dalla singola alla doppia. In caso di AA, si vanno a memorizzare fino a 6 valori di colore per i subpixel, per cui diviene necessaria la compressione del colore (fino a 6:1). Dopo la correzione gamma, il risultato può essere scritto in 4 (al massimo) render targets (per ulteriori fasi di post-processing) o inviati al monitor.
Vediamo alcuni degli effetti di pixel shader facilmente gestibili dalla versione HD dello SmartShader. Il primo è il Virtual Displacement Mapping, una tecnica di bump mapping che affianca, alla consueta texture di colore, una normal map per gestire le quote di ogni pixel. Abbinato alla mappatura orizzontale, tale tecnica consente il self shadowing e può lavorare in abbinamento con la tecnologia 3Dc di Ati per la gestione delle normal map. Altro effetto è la facile gestione dell'HDR (High Dynamic Range), la capacità di descrivere i colori come espressioni di dati in virgola mobile al fine di consentire la rappresentazione di una varietà maggiore degli stessi e di avvicinarsi, quindi, alle doti percettive dell'occhio umano.
Altro effetto importante, e che trova sempre maggiore diffusione nel mondo dei videogames, è il Depth Of Field. La profondità di campo consente, ad un programmatore, di mettere a fuoco particolari distinti sulla scena 3D, guidando l'attenzione dell'utente e rendendo molto verosimile la visualizzazione. Si tratta, in pratica, di andare ad applicare uno shader che vada a sfocare tutto ciò che non è l'oggetto che si vuole mettere in primo piano.
Gli oggetti traslucidi rappresentano un altro carico gravoso per la GPU. Alcuni materiali consentono lo spargimento della luce quando questa li attraversa, il cui effetto risultante è una nebbia di luce soffusa che dipende dallo spessore del materiale. Così come la riflessione della luce quando questa attraversa ambienti densi di polvere, fumo o nebbia: l'effetto soffuso che ne deriva è gestito tramite un gravoso pixel shader di rendering volumetrico. In ultimo, ma non per importanza, la gestione di riflessioni, rifrazioni e ombre morbide.
Come abbiamo potuto notare da questo elenco, quello propagandato da Ati non è una rivoluzione rispetto al passato, quanto un affinamento di una tecnologia già valida e che oggi si trova di fronte a shader di un certo carico elaborativo che solo una architettura snella e potente può permettere di far ammirare senza pregiudicare il frame rate.