finalcountdown
LU Visualisierung 1999 - Beispiel 1
Niko Popitsch, 9426708, e9426708@stud2.tuwien.ac.at
[download executable]
Es handelt sich hierbei um ein Volumensvisualisierungs Programm, das die im Paper von Marc Levoy
(Marc Levoy, "Display of Surfaces from Volume Data", IEEE Computer Graphics and Applications, Vol. 8(3), pp. 29-37, Feb.1987) angegebenen Formeln zur Volumensvisualisierung implementiert.
Implementiert wurde folgendes:
- trilinear interpolation
- raycasting
- back2front compositing
- isovalue contour surface classification (bei Angabe nur einer Transferfunktionen)
- region boundary surface classification (bei Angabe mehrerer Transferfunktionen)
Als shading-technik wurde das von Phong entwickelte Verfahren verwendet.
Slicing war bereits implementiert, wurde aber in der vorliegenden Version entfernt.
INI Dateien
Die Parameter für die Bilderstellung werden mittel INI-Datei an das Programm übergeben.
Die Ini-Dateien können folgende Parameter enthalten:
- Name der Datensatz-Datei
- Name der Ausgabedatei (die Nummer des erzeugten Bildes wird vorangestellt)
- Die Farbe die ein Pixel erhalten soll, falls der Strahl den Datensatz nicht trifft (optional)
- eine (oder mehrere) Transferfuntion(en)
- den Augpunkt
- einen Normalvektor zum Sichtvektor der in die x-richtung des Bildes zeigt (optional)
- eine Schrittweite, die die samplesize angibt (optional)
- die Anzahl der Zeilen die gerendert werden sollen (optional)
Angabe einer Transferfunktion
Transferfunktionen müssen in der folgenden Art angegeben werden:
trans: f_v:? r:? op:? (R:? G:? B:?)
wobei für die ? die entsprechenden Werte einzufügen sind (Ausser op alles ganzzahlige Werte !).
Angabe des Augpunktes
Der Augpunkt wird auf die folgende Art angegeben:
view: x:? y:? z:?
(alle Werte ganzzahlig !)
Interpolation einstellen
Die Trilineare Interpolation kann wie folgt eingestellt werden:
interpol: yes
(standard: keine Interpolation !)
Blöcke
Eine INI-Datei kann auch mehrere Bilder erzeugen (der Ausgabedatei wird die Nummer des erzeugten Bildes vorangestellt).
Dazu werden Transferfunktionen, Augpunkte und Normalvektoren, sowie Schrittweiten in Blöcken angegeben die mit "end" zu beenden sind.
Die INI-Datei ist schliesslich mit "end." zu beenden.
Kommentare
Sämtliche mit "#" beginnende Zeilen werden als Kommentare aufgefasst und ignoriert.
Beispiel
Eine Beispiel INI-Datei soll die Angabe aller Parameter verdeutlichen:
dataset: E:\Uni\vis\raycast\skewed_head.dat
output: big-one.tga
background: R:0 G:0 B:100
trans: f_v:1500 r:2 op:1 (R:0 G:100 B:150)
view: x:200 y:128 z:85
step: 1.0
end
trans: f_v:1500 r:2 op:1 (R:0 G:100 B:150)
trans: f_v:1800 r:2 op:1 (R:0 G:100 B:150)
view: x:120 y:128 z:150
step: 1.0
maxrows: 50
end
end.
Der Programmaufruf erfolgt dann durch Angabe der INI Datei als Kommandozeilenparameter:
finalcountdown ini-datei.ext
erstellt (wirklich ganz und gar) am 1. Dezember 1999