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:
| Shader | Aufgabe |
|---|---|
| Vertex-Shader | Verarbeitet jeden Eckpunkt eines Modells: Position im Raum, Verschiebung, Animation |
| Fragment-/Pixel-Shader | Berechnet die Farbe jedes Bildpunkts: Textur, Licht, Spiegelung, Transparenz |
| Geometry-/Tessellation-Shader | Erzeugt oder verfeinert Geometrie (mehr Dreiecke aus wenigen) |
| Compute-Shader | Allgemeine Berechnungen auf der GPU (Physik, KI, Bildfilter) |
| Ray-Tracing-Shader | Berechnung 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)