31.10.2013 Aufrufe

Download - Benjamin Granzow Portfolio

Download - Benjamin Granzow Portfolio

Download - Benjamin Granzow Portfolio

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

2.5. GPU PROGRAMMIERUNG 16<br />

wird daher verworfen.<br />

Nachdem ein Fragment alle Test durchlaufen hat, wird dieser in den Framebuffer<br />

übertragen. Bei komplett sichtbaren Objekten wird der neue Wert<br />

direkt in den Framebuffer übertragen. Wenn aber transparente Objekte verwendet<br />

werden, müssen diese noch durch den Alpha-Blending Schritt verarbeitet<br />

werden.<br />

Alpha-Blending<br />

Mittels Alpha-Blending wird genau festgelegt, wie ein neuer Fragment mit<br />

dem alten Wert im Framebuffer kombiniert wird, um den neuen Wert festzulegen.<br />

Dafür muss eine Blendfunktion festgelegt werden. Dies geschieht<br />

über glBlendFunc(srcFactor,fbFactor), wobei für die Faktoren Enumeration verwendet<br />

werden. Die möglichen Werte können der OpenGL ES 2.0 Referenz<br />

[7] entnommen werden. Diese Funktion beschriebt, mit welchen Anteilen<br />

welche Farbwerte eingehen. srcFactor wird dabei auf die neuen Fragment<br />

angewendet und fbFactor auf den alten Wert im Framebuffer.<br />

2.5 GPU Programmierung<br />

Heutzutage sind die meisten Computer mit leistungsfähiger Grafikhardware<br />

ausgestattet. Diese Hardware besitzt einen eigenen Rechenkern, der auf die<br />

Berechnung von Grafiken optimiert ist. Dieser wurde historisch dafür verwendet,<br />

Projektionen für die Darstellung zu berechnen und Objekte nachträglich<br />

zu transformieren und mit Lichteffekten zu versehen. Dabei wurden<br />

Bereiche einer Textur heller oder dunkler eingefärbt, um Schatten und Licht<br />

darzustellen. Diese Beleuchtungsfunktionen waren fest auf der Hardware<br />

verankert und konnten nur leicht konfiguriert werden. Aus diesem Grund<br />

wurde diese auch als Fixed-Function-Pipeline bezeichnet. Durch den Nachfolger<br />

dieser Architektur, die Programmable-Graphics-Pipeline, wurden die<br />

Grafikprozessoren immer leistungsfähiger. Diese neuen Graphic Processing<br />

Units (GPUs) können mit beliebigen Mini-Programmen, den sogenannten<br />

Shadern, ausgestattet werden, um beliebige Berechnungen auszuführen.<br />

Die OpenGL ES Pipeline unterstützt zwei Typen von Shadern, welche an<br />

unterschiedlichen Stellen der Pipeline durchlaufen werden. Jeder übernimmt<br />

davon eine bestimmte Aufgabe. Im Folgenden werden die angedachten Aufgaben<br />

kurz erwähnt. Da die Shader aber frei programmierbar sind, ist es<br />

dennoch möglich, diese für andere Zwecke zu verwenden.<br />

Bei Shadern gibt es eine Besonderheit für Variablen, welche Werte von außerhalb<br />

erhalten oder welche herausgeben. Diese müssen zusätzlich mit einem<br />

Typenqualifizerer versehen werden. Er ist der Typendeklaration vorangestellt<br />

und kommt am Anfang des Shaders.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!