Download - Benjamin Granzow Portfolio
Download - Benjamin Granzow Portfolio
Download - Benjamin Granzow Portfolio
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 17<br />
Es folgt eine Auflistung der wichtigsten Typenqualifizierer und ihre Bedeutung:<br />
ˆ attribute<br />
Attribute bezeichnen nur lesbare Werte, welche aus den Vertex Buffer<br />
Objekten kommen und beinhalten die fertig interpolierten Werte des<br />
speziellen Vertexes.<br />
ˆ uniform<br />
Typen, welche damit qualifiziert sind, können gezielt in der Anwendung<br />
gesetzt werden, um einen Shader zu steuern bzw. zu manipulieren.<br />
Hiermit wird eine Interaktivität gewährleistet.<br />
ˆ varying<br />
Damit werde Werte bezeichnet, welche vom Vertexshader an den Fragmentshader<br />
übergeben werden.<br />
2.5.1 Vertexshader<br />
Dieser Shader arbeitet strikt auf den Attributen des aktuellen Vertices. Es<br />
kann nicht auf andere zugreifen oder neue hinzufügen. Seine Aufgabe ist<br />
es, die Vertices zu transformieren. Dabei wird klassisch zwischen zwei unterschiedlichen<br />
Bedeutungen unterschieden. Zuerst betrifft es denn Vertex<br />
direkt, dabei kann auf dem Vertex Rotation, Translation und Skalierung angewendet<br />
werde. Zuletzt geht es um die Interpretation des Vertex.<br />
a t t r i b u t e vec3 textureCoord ;<br />
a t t r i b u t e vec3 vertexPos ;<br />
uniform mat4 modelViewMatrix ;<br />
uniform mat4 p r o j e c t i o n M a t r i x ;<br />
varying vec3 textCoord ;<br />
void main ( void )<br />
{<br />
// W e i t e r l e i t e n von Texturkoordinaten zum Fragment Shader<br />
textCoord = textureCoord ;<br />
// Transformieren der V e r t e x p o s i t i o n i n Bildschirm<br />
Koordinatensystem<br />
g l P o s i t i o n = p r o j e c t i o n M a t r i x * modelViewMatrix * vec4 ( vertexPos<br />
, 1 . 0 ) ;<br />
}<br />
Listing 2.1: Minimum Vertexshader in GLSL<br />
Durch verschiedene Matrix-Operationen kann das Koordinatensystem umgerechnet<br />
werden. Klassisch werden Lokalekoordinaten erst in Weltkoordinaten<br />
(Modelmatrix) danach in die Kamerakoordinaten (Viewingmatrix) und