LF4: Grafikkarten von Julian Möller: Shader
Shader
Shader sind Hardware- oder Software-Module, die bestimmte Rendering-Effekte bei der 3D-Computergrafik implementieren.
Verarbeitungskette
- CPU sendet Steuerbefehle und Geometrie-Daten an die Grafikkarte.
- Im Vertex-Shader werden die Eckpunkte der Geometrie transformiert.
- Im Tessellation-Shader (genauer: Tessellation-Control-Shader und Tessellation-Evaluation-Shader) können die Primitive (z.B. Dreiecke) weiter unterteilt werden.
- Ist ein Geometry-Shader auf dem Grafikchip vorhanden und aktiv, durchlaufen die Geometriedaten nun diesen, hierbei werden weitere Veränderungen an der Szene vorgenommen.
- Nun wird das Primitiv rasterisiert, wobei einzelne Fragmente erstellt werden. Die nur pro Eckpunkt (Vertex) vorliegende Informationen werden hierbei über die Dreiecksfläche interpoliert.
- Im Fragment-Shader gibt es arithmetische Rechenwerke (Shader Units) und Textur-Einheiten (Texture Mapping Units, TMUs).
- Nachdem die Fragmentberechnung abgeschlossen ist, wird der Test auf Sichtbarkeit (Z-Test) ausgeführt. Bei Sichtbarkeit findet ein Schreibvorgang in den Framebuffer statt. Dieser Schritt kann unter bestimmten Umständen bereits direkt nach der Rasterisierung vorgenommen werden (Early Z-Test).