Die OpenGL Shading Language (kurz: GLSL) ist ein Teil der OpenGL-Spezifikation welche mit der Version 2.0 eingeführt wurde. Mit Hilfe der GLSL ist es möglich, sogenannte Shader auf dem Grafikprozessor ausführen, welche die vordefinierte OpenGL-Pipeline teilweise ersetzen.
GLSL wurde bereits als Extension in OpenGL 1.5 eingeführt.
Im Detail kann die Standardfunktionalität die vor der Rasterisierung stattfindet durch Vertex-Shader ersetzt werden. Die danach vorliegenden Fragmente (Pixel bevor sie auf dem Anzeigegerät angezeigt werden) werden dann mittels der Fragmentshader bearbeitet. Hier wird die Farbe für das entsprechende Fragment berechnet.
Der Vertex-Shader wird in jedem Frame auf jedem Vertex ausgeführt, und hat dabei nur Zugriff auf den gerade behandelten Vertex (incl. seiner Texturkoordinaten, Normalen und sonstiger übergebener Daten), nicht etwa auf Nachbar-Vertices, der Topologie oder Ähnlichem.
ftransform()führt die gewöhnliche Vertex-Transformation (sogenannte Fixed Function, in der Grafikkarte festgelegte Berechnungen) durch
void main(void)
{
gl_FrontColor = gl_Color;
gl_Position = ftransform();
}
void main(void)
{
gl_FragColor = gl_Color;
}
This article is licensed under the GNU Free Documentation License.
It uses material from the
"OpenGL Shading Language".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world