Shader

Da Wikipedia, l'enciclopedia libera.

Il termine shader indica uno strumento della computer grafica 3D che generalmente è utilizzato per determinare l'aspetto finale della superficie di un oggetto. Consiste essenzialmente in un insieme di istruzioni, quindi è un programma sottoposto ad alcune restrizioni secondo il paradigma dello stream processing.

Caratteristiche[modifica | modifica wikitesto]

Gli shader devono riprodurre il comportamento fisico del materiale che compone l'oggetto cui sono applicati. Si può quindi creare uno shader per i metalli, uno per la plastica, uno per il vetro e così via, e riutilizzarli più volte all'interno di una scena. Una volta modellato un oggetto complesso, come può essere ad esempio una finestra, si assocerà al modello della cornice uno shader per il legno, uno per la maniglia, e uno per il vetro. La caratteristica riutilizzabilità di questo strumento è preziosa nel lavoro con la computer grafica 3D, sia in termini di tempo che di risultato finale.

Per determinare l'apparenza della superficie, essi utilizzano tecniche già consolidate come l'applicazione di texture, gestione delle ombre. Gli shader possono anche essere usati per applicare effetti di postprocessing. Essendo programmi a tutti gli effetti, è possibile utilizzarli anche per la replicazione di eventi fisici molto complessi quali collisioni e simulazioni fluidodinamiche. Nell'ambito dell'ottica sono abitualmente usati per simulare: diffusione, riflessione, rifrazione, e dispersione della luce.

Le moderne Graphics Processing Unit dispongono di diverse pipeline adibite alla trasformazione di una scena 3D in un'immagine raster che possa essere rappresentata sullo schermo. Tali pipeline svolgono una serie di operazioni basate su shader programmabili.

Tipologie[modifica | modifica wikitesto]

Le librerie grafiche DirectX e OpenGL utilizzano tre tipologie di shader, che sfruttano le capacità di shading delle Graphics Processing Unit presenti nelle schede video.

  • Vertex shader - gestisce la posizione dei vertici di un oggetto, pertanto ne può alterare solamente la forma
  • Geometry shader - viene usato per combinare una serie di vertici per formare un oggetto più complesso al quale applicare effetti di pixel shading: un'applicazione può definire dei GS che prendono tre vertici di un triangolo e compiono un'operazione chiamata tassellazione, creando automaticamente dei triangoli all'interno.
  • Pixel shader - elabora i singoli pixel di un oggetto, per applicare texture o effetti come bump mapping o nebbia (calcola che colore avrà ogni pixel in base alla texture applicata e all'illuminazione della scena).

Con la decima versione delle librerie DirectX, integrate in Microsoft Windows Vista, le tre tipologie sono state riunite nell'Unified shader model, o Shader Model 4.0.

Voci correlate[modifica | modifica wikitesto]

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica