Rasterisierung und die Grafik-Pipeline
Die Rasterisierung wandelt geometrische Primitive wie Dreiecke in die Pixel um, die sie auf dem Bildschirm abdecken, und bildet den zentralen Schritt der Grafik-Pipeline, die 3D-Szenen in 2D-Bilder umwandelt.
Definition
Rasterisierung ist der Prozess, bei dem bestimmt wird, welche Pixel ein projiziertes geometrisches Primitiv abdeckt, und bei dem pro-Vertex-Größen wie Tiefe, Farbe und Texturkoordinaten über diese Pixel interpoliert werden.
Scope
Dieses Thema behandelt die Stufen der Standard-Rendering-Pipeline – Vertex-Transformation, Clipping, Projektion, Primitive-Assemblierung, Scan-Konvertierung und Fragment-Verarbeitung – zusammen mit dem Tiefenpuffern für die Sichtbarkeit, der perspektivisch korrekten Interpolation von Vertex-Attributen und dem Antialiasing der resultierenden Samples.
Core questions
- Wie werden 3D-Koordinaten in 2D-Bildschirmpositionen umgewandelt?
- Welche Pixel deckt ein projiziertes Dreieck ab?
- Wie wird die Sichtbarkeit bei überlappenden Primitiven aufgelöst?
- Wie werden Aliasing-Artefakte an Kanten reduziert?
Key concepts
- Vertex- und Fragment-Stufen
- Clipping und Projektion
- Scan-Konvertierung
- Z-Buffer-Tiefentest
- Perspektivisch korrekte Interpolation
- Antialiasing
Key theories
- Die Transform-and-Rasterize-Pipeline
- Geometrie durchläuft eine feste Abfolge von Koordinatentransformationen vom Objektraum in den Bildschirmraum, danach werden Primitive in Fragmente scan-konvertiert, was eine Struktur bietet, die effizient auf parallele Hardware abgebildet werden kann.
- Tiefenpufferung für die Sichtbarkeit
- Der Z-Buffer speichert die bisher nächstgelegene Tiefe an jedem Pixel und verwirft Fragmente, die dahinter liegen, wodurch die Verdeckungsberechnung inkrementell ohne Sortierung der Geometrie gelöst wird.
Clinical relevance
Die Rasterisierungs-Pipeline ist die Grundlage praktisch aller Echtzeitgrafiken und treibt Videospiele, die Komposition von Benutzeroberflächen, CAD-Viewer und die interaktive 3D-Darstellung in Browsern und auf mobilen Geräten an.
History
Die Z-Buffer- und Scan-Konvertierungsmethoden der frühen 1970er Jahre wurden in die Fixed-Function-Pipeline früher Grafikhardware kodifiziert und dann zu den programmierbaren Shader-Pipelines moderner GPUs verallgemeinert.
Key figures
- Edwin Catmull
- Bui Tuong Phong
Related topics
Seminal works
- catmull1974
- hughes2013
Frequently asked questions
- Warum ist die Rasterisierung so schnell?
- Jedes Dreieck wird unabhängig verarbeitet und jedes Pixel wird durch einfache inkrementelle Arithmetik gefüllt, was direkt auf die massiv parallele Architektur der Grafikhardware abgebildet werden kann.
- Wozu dient der Z-Buffer?
- Er speichert, wie weit die bisher am nächsten gezeichnete Oberfläche an jedem Pixel entfernt ist, sodass nähere Oberflächen weiter entfernte überschreiben und verdeckte Teile der Szene automatisch entfernt werden.