Ablaufskizze der Grafikpipeline: 3D-Modell aus Dreiecken, danach Vertex-Shader für die Eckpunkte, dann Rasterisierung in Bildpunkte, dann Fragment-Shader für die Farbe, am Ende das fertige Bild auf dem Monitor.

Shader

Ein Shader ist ein kleines Programm, das auf der Grafikkarte läuft und berechnet, wie ein Bildpunkt oder ein Eckpunkt einer 3D-Szene am Ende aussieht. Weil Millionen dieser Programme gleichzeitig laufen, entstehen Spielegrafik, Filmeffekte und heute auch die Rechenleistung für künstliche Intelligenz.

Ein Shader ist ein sehr kleines Programm, das nicht auf dem Hauptprozessor eines Computers läuft, sondern auf der Grafikkarte. Seine Aufgabe ist eng begrenzt: Er berechnet für einen einzelnen Punkt eines Bildes, welche Farbe und Helligkeit dieser Punkt bekommt. Oder er verschiebt einen einzelnen Eckpunkt eines dreidimensionalen Objekts an die richtige Stelle. Das klingt nach wenig, aber ein Bildschirmbild besteht aus mehreren Millionen Punkten. Die Grafikkarte führt denselben Shader deshalb millionenfach gleichzeitig aus, für jeden Punkt einmal. Der Name kommt vom englischen „to shade“, also schattieren: Ursprünglich ging es nur darum, Oberflächen je nach Lichteinfall heller oder dunkler zu zeichnen.

Warum Spiele ohne Shader flach aussehen würden

Vor den Shadern konnten Grafikkarten nur eine feste Liste von Effekten. Die Hersteller hatten Beleuchtung und Oberflächen fest in die Hardware eingebaut. Wer etwas anderes wollte, hatte Pech. Seit etwa 2001 sind Grafikkarten frei programmierbar. Seither entscheiden nicht mehr die Chiphersteller, wie eine Oberfläche aussieht, sondern die Entwickler eines Spiels.

Praktisch jeder optische Effekt, den man aus modernen Spielen kennt, ist ein Shader. Das nasse Glänzen von Straßen im Regen, das Flimmern von Hitze über Asphalt, Wasser mit Wellen und Spiegelungen, weiche Schatten, die Unschärfe im Hintergrund einer Szene. All das wird nicht gefilmt oder gemalt, sondern in Echtzeit ausgerechnet, sechzig Mal pro Sekunde.

Wichtig ist auch der wirtschaftliche Punkt. Weil Shader frei programmierbar sind, wurde die Grafikkarte zu einem allgemein nutzbaren Rechenwerk. Genau diese Fähigkeit ist der Grund, warum Firmen wie Nvidia heute nicht mehr nur Spielehardware verkaufen. Dieselben Recheneinheiten trainieren inzwischen KI-Modelle.

Vom Dreieck zum fertigen Pixel

Eine 3D-Szene besteht aus lauter Dreiecken. Ein Autoreifen, ein Gesicht, eine Hauswand: alles ist aus tausenden kleinen Dreiecken zusammengesetzt. Diese Dreiecke wandern in mehreren Stufen durch die Grafikkarte, bis am Ende ein fertiges Bild herauskommt. An zwei dieser Stufen sitzen die wichtigsten Shader.

Zuerst arbeitet der Vertex-Shader. Ein Vertex ist ein Eckpunkt eines Dreiecks. Dieser Shader rechnet aus, wo der Eckpunkt aus Sicht der virtuellen Kamera landet, und kann ihn dabei verformen, etwa für wehende Kleidung. Danach füllt die Grafikkarte die Fläche zwischen den Eckpunkten mit Bildpunkten. Für jeden dieser Punkte läuft dann ein Fragment-Shader, oft auch Pixel-Shader genannt. Er bestimmt die endgültige Farbe: Wie fällt das Licht, wie glänzt das Material, welche Textur liegt darauf?

Der entscheidende Trick heißt Parallelität. Eine moderne Grafikkarte hat mehrere tausend kleine Recheneinheiten. Jede führt denselben Shader-Code aus, nur mit anderen Eingabedaten. Man kann sich das wie eine riesige Halle voller Rechner vorstellen, die alle dieselbe kurze Rechenanweisung bekommen. Ein Hauptprozessor wäre für so etwas viel zu langsam, weil er nur wenige Aufgaben gleichzeitig bearbeitet. Geschrieben werden Shader in eigenen Sprachen wie GLSL oder HLSL, die an die Programmiersprache C erinnern.

Compute-Shader, KI-Chips und der Ladebalken im Spielemenü

Im Alltag merkt man Shader vor allem, wenn etwas hakt. Viele Spiele zeigen beim Start eine Meldung wie „Shader werden kompiliert“. Der Shader-Code muss nämlich erst in die Maschinensprache der konkret eingebauten Grafikkarte übersetzt werden. Passiert das erst mitten im Spiel, ruckelt das Bild kurz. Genau darüber beschweren sich Spieler bei PC-Portierungen regelmäßig.

In Tech-News taucht der Begriff meist in einer erweiterten Bedeutung auf. Neben Grafik-Shadern gibt es Compute-Shader. Sie zeichnen gar nichts, sondern nutzen die Grafikkarte nur als schnellen Rechner für beliebige Zahlenprobleme. Physiksimulationen, Wettermodelle und das Training neuronaler Netze laufen auf diesem Weg. Wenn von „Shader-Einheiten“ oder „Shader-Cores“ einer Grafikkarte die Rede ist, sind schlicht die parallelen Recheneinheiten des Chips gemeint.

Ein häufiger Irrtum ist, Shader seien Bilddateien oder fertige Effekte zum Herunterladen. Sie sind Programmcode. Wer in Minecraft ein Shader-Paket installiert, lädt keine neuen Texturen, sondern neue Rechenvorschriften für Licht, Wasser und Schatten. Das Spiel bleibt dasselbe, nur die Anweisungen zur Bildberechnung sind andere.

Subscribe free. Unsubscribe the second it sucks.

High-signal news across AI, business, UX, and tech. Every morning.