next up previous contents
Next: Zustände und der Kontext Up: OpenGL Previous: Architektur   Contents

Pipeline Schritte

Die Applikation setzt zunächst einige interne Variablen (vgl. 1.4), dann sendet sie Informationen über Vertices und deren Verbindungen untereinander (connectivity) an die Grafikkarte. Jeder Vertex besitzt bestimmte Attribute wie seine Position im Raum, seine Farbe, Texturkoordinaten, Normale usw.

Im ersten Schritt werden diese Attribute zusammengefasst und es werden Operationen auf ihnen ausgeführt, so zum Beispiel Positionstransformationen, per-Vertex Beleuchtungsberechnungen oder die Generierung und Transformation der Texturkoordinaten.

Dann werden aus den Vertices und den Konnektivitätsdaten Primitive zusammengesetzt. Diese werden am Frustum geculled und geclippt, d.h. später nicht sichtbare Primitive werden an dieser Stelle schon aus den Berechnungen entfernt. Dann werden diese Primitive auf die Projektionsebene projiziert und es werden die Positionen der Pixel im späteren Bild berechnet (Rasterisation). Dieser Schritt hat folglich zwei Ausgabe-ströme: die oben beschriebenen Positionen der Pixel und die interpolierten Farbwerte (Fragmente) derer.

Die Fragmenten werden im nächsten Schritt weiter behandelt, zum Beispiel mit einer Textur versehen oder mittels Nebels aufgehellt. Dieser Schritt ergibt einen Farb- und einen Tiefen-wert für jedes Fragment.

Im letzten Schritt wird schließlich aus den Fragmenten und deren Positionsdaten das letztendliche Bild zusammengesetzt, nachdem noch einige Tests auf den Fragmenten stattgefunden haben, wie zum Beispiel Alpha-, Stencil, Depth oder Scissor-Tests.


next up previous contents
Next: Zustände und der Kontext Up: OpenGL Previous: Architektur   Contents
2005-10-25 Michael Bayer - nightspawn.com