MSI FX5800 Ultra-TD8X
Pag. 2 - Caratteristiche (1)
L’innovazione dell’architettura del recente chip di nVidia sta nella non discretizzazione dei vari componenti. Come già visto su queste pagine, anche il performante R300 viene proposto come un insieme di diverse e specifiche unità , la cui comunicazione permette la creazione dell’immagine finale. NV30 non è nulla (o quasi) di tutto ciò. Per fornire una elevata programmabilità , gli ingegneri nVidia hanno puntato sull’ FP Array, questo il nome del motore grafico alla base del GeForceFX 5800 Ultra. Nessuna unità di setup dei triangoli e di Vertex Shader, né T&L, né tessellizzazione, né clipping, ma una serie di motori molto poco specializzati capaci di lavorare in sincronia e perfetto parallelismo al fine di garantire la più elevata flessibilità .


Queste tabelle danno un’idea dell’enorme balzo in avanti nella programmabilità deciso da Microsoft, così come del grado di implementazione che nVidia ha deciso di dare al GeForceFX. Nel Vertex Processing, il CineFX, questo è il nome dell’intero motore di shader, ha portato a 65.536 il numero di istruzioni eseguite per vertice (di cui fino a 256 di tipo statico), a 256 il numero delle costanti vettoriali che arrivavano a 96 (ciò significa disporre di più matrici per la definizione dell’ossatura di un modello 3D e di più fonti di luci simultanee) e fino a 16 registri vettoriali temporanei (partendo da 12 e consentendo di incrementare l’estensione dei programmi interpretabili dal GeForceFX). Un’ulteriore feature importante è l’allargamento a 64 dei cicli separati; ciò ha consentito la gerarchizzazione (o ramificazione) dei programmi di shader. In questo modo, si può avere più controllo del flusso (sia statico che dinamico) delle istruzioni e far sì che si interrompa un programma, qualora vengano reputati inutili i calcoli successivi.

La sezione Pixel Processing è compatibile con la versione 2.0+ dei Pixel Shader, esattamente come per i Vertex Shader. Anche qui la casa di Santa Clara ha puntato all’estensione di alcune features e all’introduzione di altre. Le istruzioni sono state portate a 1024 partendo dalle 64 specificate da Microsoft e supportando, naturalmente, le 16 texture per passata. Ciò ha consentito una più facile creazione di effetti post-process direttamente su frame-buffer, filtraggio più complesso delle texture, ecc..

Oltre all’avanzato controllo del flusso, molto interessanti sono le funzionalità matematiche introdotte sui pixel. Con la semplice variazione di un parametro numerico, si può influenzare l’aspetto di un pixel così come la variazione dell’angolo di incidenza di una fonte luminosa può alterare la rappresentazione di una superficie in questo modo:

In ultimo, vogliamo sottolineare l’enorme vantaggio dovuto all’utilizzo di pixel shader più ampi quando applicati alle luci. Ora si potrà utilizzare il modello di illuminazione di Oren-Nayar che, per esempio, è ben 10 volte più ampio di quello tradizionale di Lambertian, con risultati di un inaspettato realismo.