Genere
ND
Lingua
ND
PEGI
ND
Prezzo
ND
Data di uscita
ND

Smartshader

Anteprima

ATi al contrattacco parte seconda: Smartshader

Ennesimo passo di ATi verso l'annuncio ufficiale del successore del Radeon: dopo la presentazione della tecnologia Truform, è ora il turno della tecnologia Smartshader, sulla quale si baseranno molto probabilmente le unità programmabili di Pixel e Vertex Shading del nuovo chip. Vediamola in dettaglio.

di Antonino Tumeo, pubblicato il

Con l'introduzione delle unità programmabili di Pixel e Vertex Shading del GeForce 3, nVidia ha certamente, a detta di tutti gli sviluppatori, prodotto l'evoluzione più importante nel campo della grafica 3D dai tempi dell'annuncio del Voodoo. Per rendere efficace questa tecnologia, nVidia ha lavorato a stretto contatto con Microsoft per realizzare una nuova versione delle API, le DirectX 8.0, che potessero sfruttare al meglio questa tecnologia.
Ma ricorderete certamente la presentazione, tenutasi pochi mesi fa, da parte di ATi, della tecnologia Truform, con la quale si introduceva sostanzialmente il supporto per l'accelerazione per le superfici di ordine superiore con un approccio leggermente più innovativo rispetto a quello del GeForce 3 di nVidia (N-Patches contro le Polynomial Surfaces).
E sembra adesso che anche per quanto riguarda le unità di Vertex e soprattutto Pixel Shading ATi voglia agire in maniera simile: pur arrivando in leggero ritardo rispetto al concorrente, vuole introdurre una tecnologia un po' più evoluta, andando a migliorare proprio quegli aspetti del GeForce 3 che hanno convinto un po' meno gli sviluppatori di punta.

LE NOVITÀ

Smartshader viene subito presentata come una "estensione" dei linguaggi di programmazione dei Pixel e Vertex Shader inseriti nelle DirectX 8.0. Per realizzare questa estensione, che dovrebbe andare a colmare i buchi ancora lasciati dall'implementazione attuale, ATi ha lavorato a stretto contatto con Microsoft stessa (sorpresa sorpresa... non sembra proprio che in Microsoft esistano contratti esclusivi...) ed il risultato sarà visibile nelle DirectX 8.1. Per gli sviluppatori che però vorranno utilizzare OpenGL, ATi si premurerà naturalmente di fornire le relative librerie proprietarie.
Gli Shader, di cui abbiamo ampiamente parlato nella presentazione del GeForce 3 (ve ne consigliamo caldamente la lettura se volete approfondire ulteriormente la questione), sono dei veri e propri piccoli programmi che consentono di creare dei particolari effetti grafici avvalendosi di apposite unità programmabili presenti nel chip grafico. Il vantaggio è senza dubbio quello che se gli sviluppatori vogliono inserire in un loro videogioco un particolare effetto, anche se non è mai stato realizzato in precedenza, possono farlo sapendo solo come devono essere visualizzate le cose sullo schermo (chiaramente nei limiti della potenza del linguaggio che viene loro messo a disposizione). Le unità programmabili si distinguono in due tipi: quelle per i Vertex Shader, e quelle per i Pixel Shader. Rispettivamente, la prima lavora sui "vertici", cioè sull'ossatura poligonale della scena tridimensionale, mentre la seconda si occupa di gestire i vari effetti sul singolo "puntino" che costituirà l'immagine finale.
Bisogna dire che le innovazioni più importanti introdotte con Smartshader riguardano i Pixel Shader, piuttosto che i Vertex Shader, che sono già abbastanza flessibili in DirectX 8.0. In effetti, al momento della presentazione del GeForce 3, Carmack criticò proprio l'unità di Pixel Shading e il relativo linguaggio, affermando che non erano esattamente quello che dovevano essere e la facevano assomigliare più ad un'unità a funzioni fisse che a un sistema programmabile. Pare proprio che ATi abbia colto la palla al balzo e cercato di porre rimedio a questi difetti, con quel certo stile che la contraddistingue.
Ecco dunque che rispetto alle attuali implementazioni, Smartshader avrà in più:
- supporto per sei texture per singola passata di rendering (contro le quattro del GeForce 3), che consentirà di ottenere effetti più complessi risparmiando sulla larghezza di banda. Da notare che tale supporto suggerisce quasi direttamente che il nuovo chip ATi dovrebbe avere delle unità di rendering in grado di supportare un pixel e almeno tre texel (contro i due delle pipeline del GeForce 3) per ciclo di clock (permettendo però il caricamento dei dati per sei texel in unico ciclo di scrittura, così come il prodotto Nvidia consente il caricamento dei dati di quattro texel), mantenendo la tradizione dell'attuale Radeon... Sempre che, come qualche rumor suggerisce, ATi non voglia strafare e aumentare il numero di texture applicate a un pixel per ciclo di clock portandolo addirittura a sei;
- un set di istruzioni semplificato ma più potente che dovrebbe fornire agli sviluppatori un maggior numero di effetti grafici con un numero minore di operazioni
- il supporto per 22 istruzioni per i Pixel Shader, contro le sole 12 dell'implementazione di DirectX 8.0, forse l'aspetto più importante, perché dovrebbe permettere la realizzazione di Shader in grado di rappresentare le superfici dei materiali in maniera più accurata
- La possibilità di eseguire operazioni matematiche sugli indirizzi delle texture e sui valori di colore, che darà accesso a nuove combinazioni di effetti di luce e di texturing prima impossibili

Passiamo adesso in rassegna alcuni dei vari effetti messi a disposizione da Vertex e Pixel Shader e vediamo in dettaglio i vantaggi che la soluzione Smartshader dovrebbe offrire rispetto all'implementazione attuale.