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 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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!