31.10.2013 Aufrufe

Download - Benjamin Granzow Portfolio

Download - Benjamin Granzow Portfolio

Download - Benjamin Granzow Portfolio

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

2.4. OPENGL ES 2.0 GRAFIKPIPELINE 14<br />

Abbildung 2.4: Programmierbare OpenGL ES pipeline<br />

Wie in Abbildung 2.4 dargestellt, ist die OpenGL ES Pipeline in drei Phasen<br />

aufgeteilt: Das Vertex Processing, das Fragment Processing und das Compositing.<br />

2.4.1 Vertex Processing<br />

Während dem Vertex Assambly Schritt werden die Daten aus der Anwendung<br />

in den Grafikkartenspeicher geladen. Dies geschieht zB. über ein VBO,<br />

welches die Vertices von Primitiven mit ihren zugehörigen Attributen enthält.<br />

Diese Daten werden als Attribute an den Vertexshader weitergegeben.<br />

Im Vertexshader werden verschiedene Vertex-Attribute transformiert. Meistens<br />

wird dieses auf die Position angewendet, aber potentiell können alle<br />

Attribute wie die Normale oder andere Anwendungsspezifische Per-Vertex-<br />

Daten transformiert werden. Nachdem die Vertex-Attribute transformiert<br />

wurden, können weitere beliebige Werte über sogenannte Varyings an den<br />

Fragmentshader weitergegeben werden. Nähere Beschreibung zum Vertexshader<br />

folgt im Abschnitt 2.5.1 Vertexshader. Darauf folgt der Primitiv Assembly<br />

Schritt, welcher die einzelnen Vertices zu Primitiven zusammensetzt.<br />

Danach werden beim Clipping die Bereiche der Objekte abgeschnitten, welche<br />

nicht im sichtbaren Ausschnitt liegen. Dies reduziert die weiterzuverarbeitenden<br />

Daten und entlastet dadurch die nachfolgenden Schritte.<br />

2.4.2 Fragment Processing<br />

Der erste Schritt in dieser Phase ist die Rasterization. Dabei wird für jeden<br />

Pixel, der ein Teil des Primitiven abdeckt, ein Fragment erzeugt. Jeder<br />

dieser Fragments gehört dabei zu einer Rasterposition auf dem Bildschirm,<br />

repräsentiert diesen aber nicht, da üblicherweise mehrere Fragments von unterschiedlichen<br />

Objekten auf einer Rasterposition liegen. Diese Fragments,<br />

welche aus den interpolierten Werten der Vertices bestehen, durchlaufen anschließend<br />

den Fragmentshader, der den endgültige Farbwert des Fragments<br />

berechnet. Dies kann durch Texturzugriffe oder Funktionen geschehen. Nähere<br />

Beschreibung folgt im Abschnitt 2.5.2 Fragmentshader.<br />

2.4.3 Compositing<br />

Die Compositing Phase ist der letzte Verarbeitungsschritt bevor der Farbwert<br />

in den Framebuffer gespeichert wird. Der Framebuffer ist ein 2D-Array<br />

von Pixeln und ihren Attributen (Farbe, Transparenz, Tiefe), welches das

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!