Les shaders sont de petits programmes qui reposent sur le GPU. Ces programmes sont exécutés pour chaque section spécifique du pipeline graphique. Dans un sens fondamental, les shaders ne sont rien de plus que des programmes transformant les entrées en sorties. Les shaders sont également des programmes très isolés en ce sens qu'ils ne sont pas autorisés à communiquer entre eux ; la seule communication qu'ils ont est via leurs entrées et sorties.

Les shaders sont écrits dans le langage GLSL qui est conçu pour être utilisé avec dans le domaine du graphique et de l’image et contient des fonctionnalités utiles spécifiquement destinées à la manipulation de vecteurs et de matrices.