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