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.

4.3. BELEUCHTUNG 39<br />

sampleMax . setZ ( 0 ) ;<br />

} e l s e {<br />

sampleMin . setZ ( qRed ( c u r r S l i c e −>p i x e l ( x , y−1) ) ) ;<br />

sampleMax . setZ ( qRed ( c u r r S l i c e −>p i x e l ( x , y+1) ) ) ;<br />

}<br />

sampleMin . setY ( qRed ( b e f o r e S l i c e −>p i x e l ( x , y ) ) ) ;<br />

sampleMax . setY ( qRed ( a f t e r S l i c e −>p i x e l ( x , y ) ) ) ;<br />

QVector3D gradientVec = sampleMax−sampleMin ;<br />

// I n v e r t i e r e n der O r i e n t i e r u n g<br />

gradientVec *= −1.0;<br />

gradientVec . normalize ( ) ;<br />

}<br />

}<br />

// Speichern des Gradienten und Dichtewertes in e i n<br />

neues Image und s k a l i e r t den Wert in den<br />

p o s i t i v e n Bereich<br />

gradientImage . s e t P i x e l ( x , y ,<br />

qRgba ( ( gradientVec . x ( ) +1) *125 ,<br />

( gradientVec . y ( ) +1) *125 ,<br />

( gradientVec . z ( ) +1) *125 ,<br />

qRed ( c u r r S l i c e −>p i x e l ( x , y ) ) )<br />

) ;<br />

}<br />

}<br />

g r a d i e n t L i s t . append ( gradientImage ) ;<br />

// Ersetzen der O r i g i n a l d a t e n mit der Gradient−Variante<br />

t e x t u r e S t a c k . c l e a r ( ) ;<br />

t e x t u r e S t a c k . append ( g r a d i e n t L i s t ) ;<br />

Listing 4.8: Vorbrauserechnung des Gradienten auf dem Datensatz<br />

4.3.3 Integration<br />

Um die Beleuchtung im Fragmentshader zu verwenden, wird nach der Klassifizierung<br />

der Gradient aus der Textur gelesen. Dabei ist zu beachten, dass<br />

die Werte immer noch in ihren alten Wertebereich zurück gerechnet werden<br />

müssen. Dies geschieht mit 2.0*mixSample.rgb−vec3(1.0). Da die Orientierung<br />

des Gradienten beim Speichern schon korrigiert wurde, kann dieser als die<br />

angenommene Normale und die benötigten Betrachtungsrichtung und Lichtrichtung<br />

zur Berechnung der Beleuchtung verwendet werden. Das einfallende<br />

Licht der Beleuchtung wird anschließend auf den Emissionswert aufgerechnet.<br />

In Listing 4.9 ist eine einfache Umsetzung mit fester Lichtposition aufgeführt.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!