OpenGL Shading Language
Z Wikipedii
OpenGL Shading Language (GLSL, glslang) jest językiem, który służy do pisania programów cieniujących dla biblioteki OpenGL, definiujących przekształcenia geometryczne wierzchołków i operacje na fragmentach - tzw. shaderów.
Występują dwa rodzaje shaderów vertex shader i fragment shader, które opisują operacje odpowiednio dla geometrii i fragmentów. Programy te wykonywane są przez 2 jednostki w potoku graficznym zwane vertex processor i fragment processor, które mogą się ze sobą komunikować, przy czym komunikacja ta przebiega tylko w jednym kierunku z vertex procesora do fragment procesora. Wynika to ze sposobu funkcjonowania potoku graficznego, w którym najpierw dokonywane są wszystkie operacje geometryczne, tak aby otrzymać model do rasteryzacji, a następnie po jej wykonaniu przeprowadza się operacje na zrasteryzowanych fragmentach. Ze względu na odmienny charakter operacji wykonywanych przez vertex i fragment processor, shadery pisane dla każdego z nich różnią się nieznacznie dialektem, tzn. poza podstawowymi konstrukcjami językowymi, które są wspólne w obydwu przypadkach, istnieje część operacji, które są charakterystyczne tylko dla określonej jednostki.
GLSL został wprowadzonym do OpenGL-a przez komitet standaryzacyjny ARB, odpowiedzialny za rozwój tej biblioteki, w wersji 1.5 jako rozszerzenie, a od wersji 2.0, po drobnych modyfikacjach, jest częścią podstawowego API.
Ponieważ język ten zastępuje dużą część dotychczasowej funkcjonalności OpenGL, wprowadzając dużo bardziej elastyczny model programowalnego potoku graficznego, zaleca się aby nowe aplikacje pisać w oparciu o niego, a dotychczasowe funkcje z tego zakresu, traktować jako warstwę wstecznej kompatybilności w stosunku do wersji 1.x.
O wyraźnym ukierunkowaniu na nowy sposób pisania programów, może świadczyć specyfikacja OpenGL ES 2.0, która zrywa wsteczną kompatybilność z serią 1.x, zastępując dotychczasową realizację operacji na wierzchołkach i fragmentach językiem glslang.