18.11.2013 Aufrufe

Particle Systems used for Visualization - ZIB

Particle Systems used for Visualization - ZIB

Particle Systems used for Visualization - ZIB

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.

Es ist also nötig, all diese Schritte auf GPU-Prozesse abzubilden.<br />

3.1 Eingabe der Daten<br />

Normalerweise erhält eine GPU als Eingabe Texturen und Listen von Eckpunkten.<br />

Eine Textur ist eigentlich nichts anderes als ein Array von numerischen Werten.<br />

Ähnlich verhält es sich bei den Listen von Eckpunkten. Wenn man nun die Eingabedaten<br />

so um<strong>for</strong>mt, dass sie in diese “Container“ passen, kann man jede beliebige<br />

Eingabe einschleusen.<br />

Im allgemeinen wird ein Puffer Objekt benötigt, welches die Eingabedaten enthält.<br />

Man wählt am besten ein eindimensionales Array, welches als Textur interpretiert<br />

wird. Hinzu kommt ein imaginäres Objekt, dessen Ecken Verweise auf die Daten in<br />

Puffer Objekt kodiert. Beide Objekte werden von der CPU erzeugt und dann in den<br />

Speicher der GPU geladen.<br />

3.2 Verarbeitung der Daten<br />

Verarbeitet werden diese Daten dann in den einzelnen Shader-Prozessen. Von diesen<br />

gibt es nach dem neusten unified shader model drei Arten: Vertex Shader, Geometry<br />

Shader und Fragment Shader. Die ersten beiden verarbeiten Texturen und Listen<br />

von Eckpunkten und reichen somit unseren Ansprüchen aus. Der dritte Typ kann<br />

daher verworfen werden.<br />

Da alle Shader frei modifizierbar sind, können alle Programme die eine CPU<br />

ausführen kann, auch von der GPU auf diese weise ausgeführt werden.<br />

3.3 Ausgabe der Daten<br />

Die Ausgabe der Shader-Prozesse ist ein Datenstrom, der ja nach An<strong>for</strong>derung<br />

weiterverarbeitet oder abgespeichert werden kann. Moderne Geometry Shader sind<br />

in der Lage Ecken der Eingabemenge zu löschen oder neue zu erstellen. Somit kann<br />

die Ausgabe beliebig umgestaltet werden. Die Formatierung der Ausgabe ähnelt der<br />

der Eingabedaten. Ein Puffer Objekt mit den möglichen Ausgabewerten und einer<br />

Liste von Ecken, welche Verweise auf diese Daten kodieren wird erzeugt.<br />

Auf diese Weise können alle wichtigen Ausführungsschritte eines Algorithmus in<br />

11

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!