A különböző shader-ek grafikus kártyák processzorán futó programok, amelyek a képelőállítás alapértelmezett folyamatának bizonyos lépései helyett alkalmazhatók.
Jelenleg három fajtája támogatott az OpenGL és DirectX API-k és videokártyák által, ezek a következők:
Ezeken felül egy negyedik fajta az úgynevezett unified shader, ami fenti típusok egyesítése. A unified shader programok nincsenek korlátozva egy típus által elérhető utasításokra, hanem a grafikus processzor által végrehajtható összes utasítást használhatják. 2007 januárjában ez a lehetőség még csak az NVIDIA GeForce 8-as sorozatú kártyáin érhetők el.
Az egyes shader fajták helyét a grafikus szerelőszalagon a következő ábra mutatja:
A unified shader-eknek nincs meghatározott helye a szerelőszalagon.
A Cg a C for Graphics név rövid alakja. A nyelvet az NVIDIA fejlesztette ki 2002-ben, a Microsofttal szorosan együttműködve. A készítők magas szintű programozási nyelvet akartak létrehozni a grafikus kártyák processzorainak programozására, úgynevezett shader-ek írásához.
A magas szintű shading nyelvek fejlesztésének célja, hogy segítségükkel a fejlesztők könnyebben írhassanak átláthatóbb programokat, és ezeket minél egyszerűbben lehessen különböző hardvereken futtatni. Ennek szellemében, a Cg programok nem csak NVIDIA, hanem az ATI és más gyártók videokártyáin is futtathatók.
A nyelv Microsoft-féle implementációja a High Level Shading Language, röviden HLSL. Nyelvi elemekben csak kisebb eltérések vannak a két nyelv között, fő különbséget a felhasználhatósági körük jelenti.
Míg a HLSL csak DirectX-szel, így Windows-on és Xbox 360-on használható, a Cg OpenGL alól is használható. Emiatt a Cg nyelven írt shader-eket futtató programok használhatók Windows, Linux, Mac OS X operációs rendszereken és Xbox 360 konzolokon is.
Az OpenGL Architecture Review Board-nak is létezik GPU-kat célzó programozási nyelve, GLSL néven. Ez a nyelv jobban különbözik a Cg-től, mint az a HLSL-től, valamint csak az OpenGL API-val használható.
A Cg nyelvet hardverközpontú, általános programozási nyelvnek tervezték.
Elsődleges felhasználási területe a játékprogramok teljesen programozható megjelenítése volt, feloldva az úgynevezett rögzített szerelőszalag korlátait. Ugyan ennek a korlátnak megkerülésére kezdték alkalmazni háromdimenziós tervező, modellező és animációs programokban.
A Windows Vista Areo elnevezésű grafikus felhasználói felülete erősen támaszkodik a programozható videokártyák adta lehetőségekre.
A nyelv lehetőségeit a legmesszebb a GPGPU trend viszi, ami a General-Purpose Computing on Graphics Processing Units elnevezés rövidítése.
Ide tartoznak a GPU-k nem grafikai célokra történő felhasználásával foglalkozó munkák. A témának a mai GPU-k hatalmas számítási kapacitása, és a shader programozási nyelvek kifejező ereje ad létjogosultságot. Gyakorlatilag nagysebességű steam processing feladatokra használja a videokártyákat.
A GPU-k sebességét általában grafikai megközelítésből adódó mérőszámokkal adják meg, mint a háromszög per másodperc és texel per másodperc. Ezek a fogalmak nagyjából háromszögek esetén három lebegőpontos számnégyesnek, illetve texelek csökkentett intervallumú lebegőpontos számnégyesnek felelnek meg.
A jelenleg elérhető videokártyák sebessége több mint 180 millió háromszög per másodperc és 10 milliárd texel per másodperc.
Pár példa a GPU-n megoldható általános problémákra: