Dokumentation VolPack


LÜ: Visualisierung WS 2005/06
Matthias Braun
 

Inhalt

1. Was ist VolPack ?
2. Systemarchitektur
3. Systemvoraussetzungen
4. Bedienung und Funktionalität
5. Download

 

1. Was ist VolPack ?

VolPack ist ein Softwareprogramm für die Visualisierung von Volumensdaten, wie sie beispielsweise bei Computertomographie-Scans erhoben werden. VolPack bietet zum Einen die Möglichkeit des "Slicing" (also der Visualisierung achsenparalleler Schnitte des Datensatzes in x-,y- und z-Richtung) und zum Anderen die direkte 3D-Volumensvisualisierung basierend auf dem RayCasting-Verfahren. Mit dieser Technik können halbtransparente 3D-Ansichten erstellt werden, die einen Einblick in die "innere Struktur" der Daten erlauben. Neben dem üblichen "Compositing" unterstützt VolPack noch einige weitere Visualisierungsmethoden  ( "Average", "First-Hit", "MIP").

VolPack ist auf Interaktivität ausgelegt, d.h. die Kamera, Transferfunktionen und andere Einstellungen sind vom Benutzer jederzeit interaktiv veränderbar, woraufhin VolPack das Bild in Echtzeit neu rendert. VolPack bietet einen vollständigen Zoom-Modus, so dass kleine Details vergrößert werden können. Um hochqualitative Bilder zu erhalten, kann auf Wunsch des Benutzers ein Bild mit den gegebenen Einstellungen in einer hohen Auflösung und mit einem besseren Resampling-Verfahren gerendert werden.

Um den räumlichen Eindruck der 3D-Ansichten zu verbessern implementiert VolPack ein einfaches Phong-Shading Modell, das bei Bedarf eingeschaltet werden kann.

Eine Schlüsselkomponente bei der Visualisierung von Volumensdaten ist die Transferfunktion. Das Erstellen von "guten" Transferfunktionen kann eine Menge Zeit in Anspruch nehmen. Transferfunktionen lassen sich daher in VolPack jederzeit speichern und auch wieder einladen.

 

2. Systemarchitektur

VolPack besitzt eine offene Systemarchitektur und besteht aus drei Komponenten, die durch unterschiedliche Fenster repräsentiert werden. Die Datensatz-Komponente lädt einen Datensatz ein, zeigt Informationen über den Datensatz an und führt "Precalculations" durch. In der Slice-Viewer-Komponente lassen sich achsenparallele Schnitte des Datensatzes in allen drei Richtungen (x,y,z) visualisieren. Die Scene-Viewer-Komponente erlaubt schließlich die Visualisierung 3-dimensionaler Ansichten des Datensatzes.

Es können mehrere Instanzen des Slice-Viewer und des Scene-Viewers gleichzeitig und unabhängig voneinander existieren. Somit kann der Datensatz sehr flexibel exploriert werden. Man kann sich beispielsweise mehrere Slice-Viewer öffnen um gleichzeitig den Datensatz in allen drei Hauptrichtungen zu betrachten oder sie mit unterschiedlichen Transferfunktionen zu rendern. Dies ermöglicht auch Vergleiche. Durch die Unabhängigkeit der Komponenten voneinander lassen sich auch mehrere Datensätze gleichzeitig visualisieren.

Multikomponentenarchitektur

 

3. Systemvoraussetzungen

VolPack wurde mit dem .Net SDK 1.1 entwickelt und benötigt dementsprechend eine installierte .Net-Runtime-Environment. VolPack greift auch auf OpenGL-Routinen zu, die benötigten dll's werden aber mitgeliefert und brauchen nicht installiert oder registriert werden.


VolPack basiert auf dem .Net-SDK

 

4. Bedienung und Funktionalität

VolPack besitzt eine sehr intuitive Bedienung, die hauptsächlich mit der Maus und durch das GUI (graphical-user-interface) geschieht. Alle Funktionen sind übersichtlich angeordnet und nach Funktionen gruppiert. Bei bestimmten Funktionen werden Tool-Tips eingeblendet, die eine bestimmte Funktion näher erläutern.

Einige Bedienhinweise für die einzelnen Komponenten:

 

Slice-Viewer:

Mit der Scroll-Bar kann auf schnelle Weise durch die Slices der eingestellten Richtung durchgescrollt werden. Alternativ kann man sich auch mit dem Mouse-Wheel durch die Slices bewegen.

Über die Schaltflächen in der Gruppe "Extend" lässt sich der Bildextend einstellen.
+ / -  : zoomt das Bild um den Faktor 2 hinein bzw. hinaus.
1:1   : passt den Extend so an, dass 1 Pixel der Auflösung des Bildes genau einem Pixel der Bildschirmauflösung entspricht.
full    : skaliert das Bild auf den vollen Screen. Entspricht das Breite/Höhe-Verhältnis des Screens nicht dem des Bildes, treten Verzerrungen auf.

Es kann auch mit der Maus in das Bild hineingezoomt werden. Linke Maustaste gedrückt halten, Zoomfenster aufziehen und loslassen. Mit der rechten Maustaste wird die letzte Zoomstufe wieder zurückgenommen.



Slice-Viewer-Komponente

Die Funktion "blend" schaltet den Blending-Modus ein, woraufhin auch Transparenzen der Transferfunktion beim rendern berücksichtigt werden. Dies erlaubt das einfache Weg- und Einblenden von Details oder bestimmten Bereichen und zudem eine bessere Adjustierung der Farben. Bei ausgeschaltetem Blending-Modus spielen die in der Transferfunktion eingestellten Opazitäten keine Rolle.

In der Statusleiste des Slice-Viewers werden Informationen über die Auflösung des Datensatzes, die Auflösung des gerenderten Bildes sowie die gerade eingestellte Slice angezeigt. Wird der Mauszeiger über das gerenderte Bild bewegt, zeigt die Statusleiste auch den Intensitätswert der Slice an der aktuellen Mausposition an. Wird der Intensitätswert '-1' angezeigt, befindet man sich außerhalb der Slice.

 

Editieren der Transferfunktion:

Über die Schaltfläche Transferfunktion öffnet sich ein nicht-modaler Dialog, der beliebig lange geöffnet bleiben kann. Hier lässt sich die Transferfunktion editieren. Die Y-Achse entspricht der Opazität und geht von 0 (keine Opazität, voll transparent) bis 1 (volle Opazität, keine Transparenz). Die X-Achse entspricht den Intensitätswerten des Datensatzes und wird durch den minimalen und den maximalen Intensitätswert beschränkt.

Knoten einfügen: linken Maustaste
Knoten verschieben: linke Maustaste gedrückt halten und Knoten in neue Position ziehen
Knoten löschen: rechte Maustaste auf den zu löschenden Knoten. Randknoten (links und rechts) können nicht gelöscht werden!
Farbe einstellen: mittlere Maustaste auf den Knoten, dessen Farbe eingestellt werden soll. Es öffnet sich ein Color-Chooser-Dialog

Alle Änderungen der Transferfunktionen werden sofort übernommen und das Bild wird neu gerendert.

Über die "load/save" Schaltflächen lässt sich die Transferfunktion speichern bzw. eine andere Transferfunktion laden.

Der Dialog kann auch vergrößert werden, um eine feinere Abstimmung zu ermöglichen.

   
Dialog zum Editieren der Transferfunktion

 

Scene-Viewer:

Mit dem Scene-Viewer lassen sich dreidimensionale Ansichten des Volumendatensatzes rendern. Es stehen vier verschiedene Visualisierungsmethoden für das Ray-Casting zur Verfügung:

First-Hit:
Der erste im eingestellten Intensitätsbereich angetroffene Wert wird abhängig von der Transferfunktion eingefärbt und gerendert.

Compositing:
Entsprechend dem Emissions- und Absorptionsmodell werden die Intensitätswert des Blickstrahls klassifiziert, eingefärbt und kombiniert. VolPack benutzt Postclassification, d.h. die Intensitätswerte werden interpoliert und erst dann der Transferfunktion entsprechend eingefärbt.

Average:
Es wird der Durchschnitt der auf dem Ray getroffenen Samples gebildet und entsprechend der Transferfunktion eingefärbt.

MIP (Maximum-Intensity-Projection):
Es wird der höchste Intensitätswert entlang des Blickstrahls gerendert.



Scene-Viewer-Komponente

Die Extend-Gruppe des Scene-Viewers wurde um einen Toggle-Button "sceView/imgView" erweitert, über den sich die Ansicht umschalten lässt. In der Image-View wird das gerenderte Bild angezeigt. In der Scene-View lässt sich die aktuelle dreidimensionale Szene samt den Elementen "Kamera, Bildebene, Volume und DOL (direction of light)" betrachten. Es lässt sich so leicht feststellen, wo man sich im Datensatz befindet und wie die dreidimensionale Szene angeordnet ist.

Tastaturkommandos in der Scene-View:

Tasten Funktion
a, d, s, w Dreht die Szene, um sie von allen Seiten betrachten zu können
f, h, u, j Bewegt die virtuelle Kamera um die y- bzw. x-Achse
t, g Bewegt die Kamera nach vorn bzw. hinten
r, z Orientiert die Kamera um die z-Achse
y, x, v, b Verändert die Richtung des Lichts
   

   

Scene-View                                                 Image-View

In der Image-View kann wie im Slice-Viewer gezoomt werden. Zusätzlich lässt sich die Kamera um die x- und y-Achse rotieren. Dies geschieht bei gedrückter rechter Maustaste, indem man in die gewünschte Richtung zieht.

Über die Schaltfläche "image" lässt sich ein hochqualitatives Bild rendern. Dies kann je nach eingestellten Optionen einige Sekunden in Anspruch nehmen, da eine höhere Auflösung (256 x 256 Pixel) und ein besseres Interpolationsverfahren (trilineare Interpolation) verwendet wird. Die benötigte Renderzeit wird in der Statusleiste angezeigt. Besonders bei eingestelltem Shading nimmt die benötigte Renderzeit um ein Vielfaches zu.

 

Abschließende Hinweise

 

5. Download

Das zip-Archiv enthält alle notwendigen Dateien.

VolPackRelease.zip