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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!