11.03.2014 Aufrufe

Vorlesungsskript Computergraphik II - IWR

Vorlesungsskript Computergraphik II - IWR

Vorlesungsskript Computergraphik II - IWR

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.3. C FOR GRAPHICS 37<br />

}<br />

// Erzeugung der 2D-Skalierungsmatrix:<br />

float2x2 scale_matrix = float2x2(scale_factor, 0.0, 0.0, scale_factor);<br />

float sin_rot, cos_rot;<br />

sincos(rotation, sin_rot, cos_rot);<br />

float2x2 rotation_matrix = float2x2(cos_rot, -sin_rot, sin_rot, cos_rot);<br />

// Transfomieren der Vertices mit Hilfe der Skalierungsmatrix:<br />

out_position = float4(mul(scale_matrix, mul(rotation_matrix, position.xy)), 0, 1);<br />

Beispiel 2.8 Ebenfalls zum vorhergehenden Beispiel passend ist hier ein ganz einfaches Cg-Fragmentprogramm<br />

aufgeführt.<br />

/*<br />

Simple fragment shader<br />

by Daniel Jungblut, <strong>IWR</strong> Heidelberg, February 2008.<br />

*/<br />

void simple_fragment_shader(out float4 out_color : COLOR, uniform float3 color) {<br />

}<br />

out_color = float4(color, 1.0);<br />

2.3.9 Parameter, Texturen und mathematische Ausdrücke<br />

Mit dem Qualifier uniform werden Parameter eines externen Programms an das Cg-Programm<br />

übergeben. Wenn eine Variable NICHT initialisiert wurde, kann das in der Entry function geschehen.<br />

Hier können auch mit dem Qualifier const nicht veränderbare Konstanten gesetzt werden.<br />

const float pi = 3.14159;<br />

// NICHT veraenderbar!!!<br />

pi = 4.0; // NICHT erlaubt!<br />

float a = pi++; // NICHT erlaubt!<br />

Texture sampler werden uniform übergeben, d.h. sie treten als Teil einer Eingabe an den Fragmentprozessor<br />

auf.<br />

uniform sampler2D decal<br />

// Teil einer IN-Struktur<br />

Um auf eine Textur zuzugreifen, gibt es Standard Cg Funktionen, die den Namen der uniform übergebenen<br />

Textur mit den Texturkoordinaten versieht und als Farbe zurückgibt.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!