Particle Systems used for Visualization - ZIB
Particle Systems used for Visualization - ZIB
Particle Systems used for Visualization - ZIB
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