Der Fragment Shader ist Teil der OpenGL Draw-Pipeline und wird für jedes Fragment aufgerufen. Er berechnet typischerweise:

  • Die Farbe des aktuellen Fragments und damit eines Pixels

Arbeitsweise

  • Vom Input gl_FragCoord kommt die Pixelposition (x, y) + Tiefe (z) des Fragments
  • In gl_FragDepth kann ein neuer Z-Buffer-Wert geschrieben werden
  • Der erste andere Output ist die Farbe, die auf dem Bildschirm landet

Beispiel

Dieser Fragment Shader bekommt die interpolierte Farbe vom Rasterizer und gibt sie anschließend aus:

in vec3 frag_col;
out vec4 out_color;
 
void main() {
	out_color = vec4(frag_col, 1);
}