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.1. 2D TEXTURE-SLICED VOLUMEN RENDERING 25<br />
Um alle Blickrichtungen abzudecken, müssen analog dazu weitere Methoden<br />
für jede der Achsen in positiver und negativer Richtung erstellt werden. Um<br />
die Ebenen in umgekehrter Reihenfolge zu zeichnen, muss nur dZPos = 1.0<br />
initialisiert werden und dann in den negativen Bereich laufen. Der Texturzugriff<br />
erfolgt an der Stelle textureStackZ[ slice −1]. Diese Umsetzung erlaubt<br />
es, abhängig von der Betrachtungsrichtung, die passende Zeichenmethode<br />
aufzurufen.<br />
varying vec2 textCoord ;<br />
uniform f l o a t textAlpha ;<br />
uniform sampler2D t e x t u r e ;<br />
void main ( void )<br />
{<br />
// Konstante Transparenz<br />
f l o a t alpha = 0 . 0 1 ;<br />
g l F r a g C o l o r = vec4 ( texture2D ( texture , textCoord . xy ) . rgb , alpha ) ;<br />
}<br />
Listing 4.2: Fragmentshader für eine Textur mit konstanter Transparenz<br />
Mittels des Fragmentshaders wird dann, wie im Volumen Rendering Integral<br />
2.4 beschrieben, der Farbwert für die aktuelle Ebene berechnet.Dabei<br />
ist die Darstellung der Emission und Absorption direkt auf vorhandene Mittel<br />
übertragbar. Die Emission eines Fragments entspricht dabei genau dem<br />
Farbwert der Textur und die Absorption kann durch den Alpha-Wert der<br />
Farbe umgesetzt werden. Um eine einfache Volumendarstellung zu erzeugen,<br />
wird im Fragmentshader für die Transparenz eine konstanter Wert verwendet.<br />
Im Listing 4.2 wird dieser konstante Wert verwendet.<br />
Abbildung 4.2: Einfache Volumendarstellung mit konstanter Transparenz