EMZETT.
Login

Shader

Kurz: Ein Shader ist ein kleines Programm, das auf der Grafikkarte läuft und bestimmt, wie Geometrie und Pixel dargestellt werden: Position, Farbe, Licht, Schatten und Oberflächeneffekte.

Genauer: Eine Grafikkarte ist darauf ausgelegt, tausende kleine Berechnungen gleichzeitig durchzuführen. Shader sind genau diese Berechnungen: Für jeden Eckpunkt oder jedes Pixel läuft dasselbe Programm mit anderen Daten. Das nennt man Parallelverarbeitung.

Im Detail

Wichtige Arten:

ShaderAufgabe
Vertex-ShaderVerarbeitet jeden Eckpunkt eines Modells: Position im Raum, Verschiebung, Animation
Fragment-/Pixel-ShaderBerechnet die Farbe jedes Bildpunkts: Textur, Licht, Spiegelung, Transparenz
Geometry-/Tessellation-ShaderErzeugt oder verfeinert Geometrie (mehr Dreiecke aus wenigen)
Compute-ShaderAllgemeine Berechnungen auf der GPU (Physik, KI, Bildfilter)
Ray-Tracing-ShaderBerechnung von Lichtstrahlen für realistische Beleuchtung

Ablauf in der Grafik-Pipeline: Modelldaten → Vertex-Shader → Rasterisierung (Dreiecke werden zu Pixeln) → Fragment-Shader → Bild.

Sprachen: GLSL (OpenGL), HLSL (DirectX, Unity), WGSL (WebGPU), Metal Shading Language (Apple), SPIR-V (Vulkan). Visuell: Shader Graph (Unity), Material-Editor (Unreal).

Beispiel (GLSL-Fragment-Shader):

void main() {
    // Farbe aus der Textur, abgedunkelt je nach Licht
    vec3 farbe = texture(tex, uv).rgb * max(dot(normale, lichtRichtung), 0.0);
    ausgabe = vec4(farbe, 1.0);
}

Einsatz:

  • Beleuchtung, Schatten, Wasser, Rauch, Haut, Haare, Nebel.
  • Postprocessing: Unschärfe (Bloom), Farbkorrektur, Kantenglättung.
  • Kunstformen: Cel-Shading (Comic-Look), Pixel-Shader, Hologramm-Effekte.
  • Nicht nur Spiele: Filme (Render-Shader), Berechnungen, KI.

Kosten: Komplexe Shader bremsen die Bildrate. Beim ersten Start „Shader kompilieren” lädt Spiele lange (Shader-Cache).

Siehe auch: Game Engine, Unity, 3D-Modellierung (Modeling)