Il '''Geometry shader''' (GS) è un programma [[shader]] eseguito di solito sulla [[Graphics Processing Unit]] (GPU) di una [[scheda grafica]].
== Funzione ==
Il geometry shader è in grado di generare nuove primitive (quali pixel, linee o triangoli) partendo da primitive già esistenti.
Viene eseguito dopo al [[vertex shader]] e riceve come [[input]] un'intera primitiva e le eventuali informazioni di adiacenza. Se, ad esempio, lo shader effettuerà un'operazione su un triangolo, riceverà in input le [[coordinate]] dei tre [[vertice|vertici]]. Il geometry shader restituisce come [[output]] zero o più primitive, che vengono [[raster]]izzate e inviate al [[pixel shader]] per le ultime elaborazioni.
<!-- Typical uses of a geometry shader include point sprite generation, geometry tessellation, shadow volume extrusion, single pass rendering to a cube map. -->
== Programmazione ==
Il Geometry shader è programmabile tramite [[Assembler]], [[HLSL]] e [[GLSL]]. Le librerie grafiche [[DirectX]] e [[OpenGL]] offrono funzioni per facilitare la programmazione.