Un’ oggetto 3D visualizzato a schermo necessita di essere istruito sul come essere visualizzato. Se un’oggetto è composto (virtualmente) di plastica, dovrà comportarsi in una certa maniera, se di metallo in un’altra. Lo Shader Model si spiega proprio questi termini.
Lo Shader Model è una feature delle schede video che permette di stabilire l’effetto di visulizzazione di un’oggetto basandosi sulle regole, a volte molto complesse, della fisica. Le istruzioni che lo compongono sono divise per tipo di oggetto: per una lampada si andrà a leggere le regole di visualizzazione del metallo e della luce; per visualizzare uno scaffale di andranno ad applicare gli shader del legno e così via…
Lo Shader Model a cosa porta? Posta a un risparmio netto di tempo di sviluppo, una qualità superiore di visualizzazione e minor tempo di calcolo per le GPU, perchè gli SM sono calcolati in Hardware dalle schede video da appositi chip dedicati. Alcuni videogiochi come Splinter Cell Caos Theory, ai tempi, richiedevano una scheda video con Shader Model 3.0 per poterci giocare, o il gioco non partiva proprio perchè gli oggetti 3d senza le librerie delle Shader Model non potevano essere visualizzati a schermo.
Senza soffermarmici troppo, vi spiego i tre tipi di shader che attualmente risiedono nelle schede video:
Vertex Shader: serve a indicare la forma dell’oggetto.
Geometry Shader: viene utilizzata per la visualizzazione di oggetti complessi, unendo più modelli tra di loro. Viene sfruttata anche l’Hardware Tesselation per riempire le forme risultanti dal calcolo.
Pixel Shader: è l’utility che non modifica la forma dell’oggetto nel suo complesso, ma va a toccare ogni singolo pixel che compone l’immagine. Questo perchè se si applica, ad esempio, un’effetto nebbia in una scena ma la nebbia non copre l’intero oggetto a schermo, il colore visualizzato non sarà lo stesso su tutta la superficie.
Per fare un’esempio pratico, gli Shader Model spiegano alla scheda video come visualizzare gli elementi in immagini come queste:
Con l’avvento di Windows Vista e delle DirectX 10, Microsoft ha intorodotto le Unified Shader Model (o Shader Model 4.0) che ne semplifica l’utilizzo sfruttando un solo set di istruzioni. Questo comporta una programmazione più semplice e un’utilizzo migliore dell’hardware video.
Luca “Loco” Locorotondo
Consulente Informatico Locotek
Speaker Radiofonico (Loco) Fanbit