SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Das cpvrLab am Institute for Human Centered Engineering HuCE hat ein Cave Automatic Virtual
Environment (CAVE) in Betrieb. Das verwendete Rendering-Framework basiert u.a. auf der Bibliothek
OpenSceneGraph (OSG). Der Szenengraph soll um einen Knoten erweitert werden, der das Rendern
grosser Volumengrafiken in Echtzeit erm¨oglicht.
Technologien: OSG, Equalizer, C/C++, OpenGL, GLSL
Fachgebiet: Informatik, Modul BTI7302 Projekt 2, Vertiefung in CPVR
Autor: Roland E. Bruggmann, roland.bruggmann@students.bfh.ch
Betreuer: Prof. Urs K¨unzler, urs.kuenzler@bfh.ch
Datum: 13. Juni 2015
Berner Fachhochschule | Haute ´ecole sp´ecialis´ee bernoise | Bern University of Applied Sciences
OSG Volume Rendering
Szenengraph-Knoten f¨ur das Echtzeit-Rendern
von Volumengrafiken aus grossen Datens¨atzen
Semesterarbeit
Versionen
Version Datum Status Bemerkungen
0.1 18. Februar 2015 Entwurf Kick-Off Meeting: Arbeitstitel, Abk¨urzungen, Glossar, Verzeichnisse
0.2 20. Mai 2015 Entwurf Disposition: Inhaltsverzeichnis
0.3 06. Juni 2015 Review Grundlagen, Konzept, Umsetzung, Schlussfolgerungen, Zusammenfassung
1.0 12. Juni 2015 Reinfassung Schlussredaktion
1.1 13. Juni 2015 Reinfassung Korrekturen, Erg¨anzungen
Zusammenfassung
Das cpvrLab am Institute for Human Centered Engineering HuCE hat ein Cave Automatic Virtual Environment
(CAVE) in Betrieb. Das verwendete Rendering-Framework Immersive 3D (I3D) basiert u.a. auf den Bibliotheken
Equalizer und OpenSceneGraph (OSG). Der Szenengraph soll nun um einen Knoten erweitert werden, der das
performante Rendern grosser Volumengrafiken in Echtzeit erm¨oglicht.
Dazu sollen die Grundlagen zum Thema Realtime Volume Rendering sowie das Know-how zum Haptic CAVE System
und den darin eingesetzten Technologien I3D, Equalizer und OSG erarbeitet werden. Schliesslich soll der Prototyp
eines Volume-Renderers einen ersten Testlauf im CAVE bestehen.
F¨ur die Implementation im Zuge der Bachelorarbeit wird der Volume Rendering-Node von OpenSceneGraph (OSG)
verwendet werden.
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 i
Inhaltsverzeichnis
Zusammenfassung i
1. Einleitung 1
1.1. Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. ¨Ubersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2. Grundlagen 2
2.1. Volume Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1.1. Raycasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.2. Big Volume Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2. Cave Automatic Virtual Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1. Parallel Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3. Prototyp 10
3.1. Konzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.1. Prim¨are Prototypanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.2. Erg¨anzende Prototypanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.3. Dom¨anenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2. Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4. Resultate 12
4.1. Evaluation UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2. Transferfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3. Big Volume Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.4. CAVE-Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5. Schlussfolgerungen und Ausblick 14
Abk¨urzungen 16
Glossar 17
Literaturverzeichnis 20
Bildnachweis 21
Abbildungsverzeichnis 22
A. Arbeitsorganisation 23
A.1. Projektbeschrieb und Pr¨asentationsdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
A.2. Zeitplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
A.3. Arbeitsjournal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
B. Materialien 27
B.1. E-Mail Luggen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
B.2. E-Mail Blatter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 ii
1. Einleitung
F¨ur die ¨arztliche Diagnostik und Therapie kommen heutzutage computergest¨utzte Verfahren zur Anwendung. Me-
dizinische Bilddaten werden dabei u.a. per Computertomograph (CT) oder Magnetic Resonance Imaging (MRI)
aquiriert und in einer Bildanalyse aufbereitet. Die resultierenden Daten k¨onnen schliesslich als Volumengrafik vi-
sualisiert werden. Diese sind nicht zuletzt dienlich zur Wissensbildung und k¨onnen auch zu Schulungszwecken
Verwendung finden. Dazu betreibt das cpvrLab am Institute for Human Centered Engineering HuCE der BFH-TI
ein Cave Automatic Virtual Environment (CAVE). Das CAVE verf¨ugt ¨uber eine haptische Erweiterung1
und wurde
bereits als Umgebung zur Schulung und ¨Ubung von medizinischen Workflows im OP eingesetzt2
. Mit der M¨oglich-
keit, medizinische Bilddaten als Volumengrafik in die Szenerie einzubinden, kann die virtuelle Trainingsumgebung
massgebend erweitert werden.
1.1. Problemstellung
Das Rendering-Framework Immersive 3D (I3D) f¨ur das cpvrLab eigene Haptic CAVE System basiert auf den Bi-
bliotheken Equalizer und OpenSceneGraph (OSG). Der Szenengraph soll um einen Knoten erweitert werden, der
das Echtzeit-Rendern grosser Datens¨atze als Volumengrafik erm¨oglicht. Das Rendern soll mit der OpenGL Shading
Language (GLSL) implementiert und somit auf der Graphic Processing Unit (GPU) ausgef¨uhrt werden.
Das Modul
”
Projekt 2”dient als Vorbereitung auf die Bachelorarbeit in den Folgesemestern. Ziel dieser Semester-
arbeit soll deshalb das Erarbeiten der Grundlagen zum Thema Realtime Volume Rendering sein. Ebenso soll das
Know-how zum Haptic CAVE System sowie den darin eingesetzten Technologien I3D, Equalizer und OSG angeeig-
net werden. Das Setup der Toolchain (Softwareentwicklungsumgebung, Bibliotheken etc.) soll vollzogen werden.
Schliesslich soll der Prototyp einer Applikation unter Verwendung von OSG implementiert werden. Die Applikation
soll einen ersten Test im CAVE durchlaufen.
1.2. ¨Ubersicht
Der vorliegende Bericht ist in f¨unf Kapitel geteilt: Auf diese Einleitung folgt eine Erl¨auterung der Grundlagen (Ka-
pitel 2). Im Anschluss wird das Konzept und die Umsetzung des Prototypen vorgestellt (Kapitel 3), danach werden
die Resultate diskutiert (Kapitel 4). In den Schlussfolgerungen werden die wichtigsten Ergebnisse rekapituliert und
hinsichtlich der Ausgangslage reflektiert (Kapitel 5).
Im Anhang zu finden sind die Arbeitsorganisation enthaltend die Modulbeschreibung, den Projektbeschrieb, die
Pr¨asentationsdaten, die Bewertungskriterien, ein Zeitplan sowie ein Arbeitsjournal (Anhang A) sowie Materialien
(Anhang B).
1Del Piero, Michel und Weber, Claudia (2011): Haptik f¨ur den CAVE – V-Touch Library. cpvrLab, Institute for Human Centered
Engineering HuCE, BFH-TI Biel/Bienne.
2Urs K¨unzler u.a.: HOVISSE – Haptic Osteosynthesis Virtual Intra-operative Surgery Support Environment. Springer Berlin Heidelberg:
2009. DOI: 10.1007978-3-642-00437-7 8. Online: https://www.cpvrlab.ti.bfh.ch/research/projects/hovisse/.
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 1
2. Grundlagen
In diesen Grundlagen wird mit dem Raycasting eine g¨angige Methode des Volume Rendering erl¨autert. Im Anschluss
wird die Funktionsweise des Haptic CAVE System und das Parallel Rendering mit Equalizer vorgestellt.
2.1. Volume Rendering
Anschauliche Visualisierungen spielen in Bildung und Forschung generell eine wichtige Rolle. Eine spezeille Art der
computergest¨utzten Visualisierung ist das Volume Rendering. Die Technologie hat ihren Ursprung in der medizini-
schen Bildverarbeitung und findet zunehmend auch in anderen Bereichen Anwendung, so in den Materialwissen-
schaften f¨ur die digitale Modellierung von Werkstoffen (vgl. [Joh+06, S. 20]), f¨ur wissenschaftliche Visualisierungen
in Disziplinen wie Physik, Klimatologie, Arch¨aologie oder Anatomie (siehe Abbildung 2.1, v.l.n.r, v.o.n.u.), aber
auch in Computer-Spielen und den visuellen K¨unsten.
Abbildung 2.1.: Wissenschaftliche Visualisierungen mit Volume Rendering
Bei Verwendung der Technologie in der medizinischen Bildverarbeitung werden Daten per CT, MRI oder anderen
bildgebenden Verfahren aquiriert. Mit den Ger¨aten k¨onnen zahlreiche Schnittbilder des menschlichen K¨orpers erstellt
und als DICOM1
-Dateien gespeichert werden (Namenerweiterung *.dcm). Der Bilderstapel wird schliesslich zu einer
r¨aumlich ausgedehnten Volumengrafik synthetisiert – heutzutage in Echtzeit.
Im Gegensatz zu indirekten Rendering-Methoden wie z.B. f¨ur Isosurfaces, bei denen die Oberfl¨ache mit einem Pre-
Prozess extrahiert wird, berechnen direkte Methoden die Voxel-Daten mit einem optischen Modell. Dabei k¨onnen
Emission, Reflektion, Streuung, Absorption und Verdeckung von Licht ber¨ucksichtigt werden. Gem¨ass Rezk-Salama
u. a. [RTVG06, S. 8] wird f¨ur das Direct Volume Rendering (DVR) meistens ein Emissions-Absorptions-Modell
verwendet, so auch beim Raycasting. Dabei werden Streuung und indirekte Beleuchtung ignoriert, womit ein guter
Kompromiss zwischen Qualit¨at der Volumengrafik und Effizienz der Berechnung gemacht wird.
1DICOM – Digital Imaging and Communications in Medicine. URL: http://dicom.nema.org/ (besucht am 28. Mai 2015).
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 2
2.1.1. Raycasting
Beim Texture Slicing (object-order) wird die das Schneiden des Volumen mit der Sichtebene auf der CPU berechnet,
lediglich die 3D-Textur und die Transferfunktion wir auf der GPU ausgef¨uhrt. Beim Raycasting hingegen wird
ein Image-Order-Ansatz verfolgt: Die CPU l¨adt den Fragment-Shader auf die Grafikkarte, die Berechnungen wie
Raycasting und Texturen-Lookup erfolgt auf der GPU (siehe Abbildung 2.2).
Abbildung 2.2.: Texture slicing vs. Raycasting
Die Rendering Pipeline f¨ur das Raycasting kann in vier Schritte geteilt werden: Rekonstruktion (’Sampling’), Klas-
sifikation, Shading und Compositing.
Ray setup
Das Setup geht von einem prozeduralen Schnitt von Sichtstrahl und W¨urfel aus (siehe Abbildung 2.3). Dabei
erfolgt eine Rasterisierung der Bounding Box mit dem Sichtstrahl als Fragment. Dazu muss die Start-Position des
Sichtstrahls und Position des Austritts aus der Bounding Box bekannt sein – oder es wird wiederholt getestet, ob
das Ende der Bounding Box schon erreicht ist. Ein anderer Ansatz kennt die Start-Position und den Richtungsvektor
des Sichtstrahls.
Abbildung 2.3.: Ray setup
Die folgenden Schritte erfolgen als Schleife ¨uber alle Sichtstrahlen (Loop over Ray).
Rekonstruktion
Zur Rekonstrukton der 3D-Daten werden die Datens¨atze traversiert und ihre Werte interpoliert. Beim sogenannten
Sampling werden die Skalarwerte I(s) berechnet: Die Rendering-Gleichung von Kajiya [Kaj86, S. 1] kann auf das
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 3
Emissions-Absorptions-Modell adaptiert werden. Mit einfallendem Licht I(s0), Emissionsquelle q und Absorptions-
koeffizient K wird das Volume Rendering als Integral entlang des Lichtflusses beginnend bei Punkt s0 bis zum
Endpunkt s formuliert (siehe Abbildung 2.4 und Gleichung 2.1).
Abbildung 2.4.: Sichtstrahl mit dem Emissions-Absorptions-Modell
I(s) = I(s0)e−
s
s0
K(s)ds
+
s
s0
q(˜s)e−
s
˜s K(s)ds
d˜s (2.1)
Klassifikation
Bei der Klassifikation werden die Grauwerte der Voxel koloriert. Mit einer Transferfunktion wird einem Grauwert
ein Farbwert zugewiesen, womit das farbliche Aussehen der Volumengrafik festgelegt und damit eine differentierte
Lesbarkeit erreicht wird (siehe Abbildungen 2.5 und 2.6). Nebst dem simplen Zuweisen eines Fabrwertes mittels
Lookup Table (LUT) kann auch ein 1D Histogramm oder ein 2D Scatterplot zur Anwendung kommen.
Abbildung 2.5.: Klassifikation mit einer Transferfunktion
Abbildung 2.6.: Voxel in Graustufen und koloriert
Shading
Das Shading ist wichtig f¨ur das Erkennen von Rauheiten einer Oberfl¨ache. Zur Anwendung kann ein lokales Be-
leuchtungsmodell kommen, z.B. ein Phong-Shading, bei der die Summe von ambient-, diffus- und spekul¨ar-Licht
berechnet wird.
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 4
Compositing
Das Volume Rendering-Integral wird mit einer Riemannsumme approximiert (siehe [RTVG06, S. 10 f.]). Mit C
(color) als Farbe des aktuellen Sampling-Punktes und T als dessen Transparenz sowie n als maximale Anzahl von
Sampling-Punkten gestaltet sich das diskrete Volume Rendering-Integral wie folgt (siehe Gleichung 2.2):
I(s) =
n
i=0
Ci
n
j=i+1
Tj (2.2)
mit
Ci ≈ q(si )∆x
Tj ≈ e−K(sj )∆x
∆x = s−s0
n
Diese diskretisierte Formel mit A als Absorption kann f¨ur numerische Berechnungen mit einer Maschine verwendet
werden. Dabei k¨onnen zwei Arten der Berechnung zum Zuge kommen: Back-to-front compositing (Iteration mit
Start bei i = 0 (back) nach i = max (front): i w¨achst):
Ci = Ci + (1 − Ai ) × Ci−1
oder aber das Front-to-back compositing (Iteration mit Start bei i = max (front) nach i = 0 (back): i wird
kleiner):
Ci = Ci+1 + (1 − Ai+1) × Ci
Ai = Ai+1 + (1 − Ai+1) × Ai
Eine Optimierung der Berechnung ist die ’early ray termination’: Die Berechnung f¨ur den front-to-back-Strahl
kann beendet werden, sobald die Absorption Ai+1 ≈ 1 wird. Eine weitere Optimierung kann durch das sowie das
’empty space skipping’ (auch ’empty space leaping’) erreicht werden. Dabei werden vollst¨andig transparente Voxel
ausgelassen.
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 5
2.1.2. Big Volume Data
Bei Big Volume Data (auch ’Large Volume Data’ oder ’Large Dataset for Volume-Rendering’) handelt es sich um
grosse Datenmengen, die u.U. als Ganzes im Speicherbereich der Graphikkarte keinen Platz finden (vgl. [Mak12,
S. 73]). Dabei kann es sich um hochaufgel¨oste Daten eines Micro-CT handeln, aber auch um den Output einer
physikalischen Simulation. Dieselbe Herausforderung findet sich skaliert auch auf einem mobilen Ger¨at mit geringen
Ressourcen wieder.
Eine Methode f¨ur das Handling grosser Daten ist das Rendern von verschiedenen Level of Detail (LOD) ( vgl. [AS12,
S. 481 f.]). Dabei kann die maximale Aufl¨osung des Systemes ber¨ucksichtigt werden, Subpixel-Gr¨ossen m¨ussen
nicht gerendert werden. Beim Bricking erfolgt die Diskretisierung des 3D-Raumes durch die rekursive Zerlegung
des Raumes in W¨urfel (siehe [AS12, S. 489 ff.] und [RTVG06, S. 446 f.]). Diese wird mit der Datenstruktur Octree
modelliert, auch N3
-Tree genannt (siehe Abbildung 2.7).
Abbildung 2.7.: Bricking des Raumes und Modellierung als Octree
Der OSG-Namespace osgVolume kann f¨ur Big Volume Data verwendet werden, er enth¨alt bereits eine Methode
zum Rendern der LOD mit einem Tiling. Ein Bricking w¨are noch zu implementieren.
Grosse Datens¨atze k¨onnten zudem in einem Pre-Prozess Komprimiert und zur Laufzeit auf die Grafikkarte gesendet
werden, wo die Daten dekomprimiert und rekonstruiert werden (siehe [RTVG06, S. 451 ff.]). Dazu gibt es diverse
Methoden unter Anwendung verschiedener Algorithmen wie Fast Fourier Transformation (FFT), Wavelets o.a. Eine
weitere M¨oglichkeit das Rendern zu beschleunigen w¨are eine Implementation parallelen Rechnens mit der Open
Computing Library (OpenCL) oder unter Verwendung der C-Bibliothek f¨ur die Compute Unified Device Architecture
(CUDA) von NVIDIA.
Zu den Themen Datenkompression und Beschleunigung wurde eine Recherche durchgef¨urt, diese resultierte in
mehreren Publikationen – folgende zwei sollen hier Erw¨ahnung finden:
ˆ Marcos Balsa Rodriguez, Enrico Gobbetti, Jos´e Antonio Iglesias Guiti´an, Maxim Makhinya, Fabio Marton,
Renato Pajarola und Susanne Suter: State-of-the-art in Compressed GPU-Based Direct Volume Rendering.
Computer Graphics Forum, 33(6): 77-100, September 2014.
ˆ David B. Kirk, Wen-mei W. Hwu: Application Case Study: Advanced MRI Reconstruction. In: Programming
Massively Parallel Processors. A Hands-on Approach. Burlington: Elsevier Inc., 2010. Kap. 8. ISBN: 978-0-
12-381472-2.
Erstere Publikation kann zur ¨Ubersicht dienen und enth¨alt ein ausf¨uhrliches Literaturverzeichnis, letztere befasst
sich mit dem parallelen Programmieren unter Verwendung von CUDA.
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 6
2.2. Cave Automatic Virtual Environment
Ein Cave Automatic Virtual Environment (CAVE; engl. cave: H¨ohle) ist ein Raum, in den eine 3D-Welt projiziert
wird. Das Haptic CAVE System im cpvrLab des HuCE z¨ahlt zu den physisch immersiven virtuellen Umgebungen
und misst 2.5 m×2.5 m×2.0 m (vgl. [CPVR11a]). Als Projektionsfl¨achen dienen drei W¨ande und der Boden (siehe
Abbildung 2.8).
Abbildung 2.8.: R¨aumliche Anordnung des Haptic CAVE System
Die Visualisierung (vgl. [CPVR11b]) erfolgt ¨uber vier Gruppen `a je zwei Projektoren, welche eine Leinwand resp.
den Boden mit einem stereoskopischen Bild bescheinen (siehe Abbildung 2.9). Mit linear polarisierenden Filtern
auf den Projektoren (±45 °) und mit polarisierten Brillen wird ein 3D-Effekt als Passiv-Stereo erzeugt (siehe Abbil-
dung 2.10).
Abbildung 2.9.: Komposition zweier Projektoren zum Bescheinen einer Wand
Abbildung 2.10.: Schema eines 45 °-Polarisationsfilters und 3D-Brille
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 7
Jeder der acht Projektoren wird von einer dedizierten Renderstation angesteuert. Auf den Stationen kommt das
Framework I3D zum Einsatz Рeine Entwicklung des cpvrLab (siehe [CPVR11c]). Die Au߬osung der Hardware
betr¨agt 1400 × 1050 Pixel (SXGA+, aspect ratio 4 : 3), jene der Software 1280 × 1024 Pixel (SXGA, aspect ratio
5 : 4) – es werden also ca. 1.3 Mio Bildpunkte projiziert (siehe Abbildung 2.11).
Abbildung 2.11.: Anordnung der Projektoren f¨ur die Stereobildwiedergabe und erreichte Aufl¨osungen
2.2.1. Parallel Rendering
In virtuellen Umgebungen sollten gem¨ass Fujimoto [Fuj00, S. 28] Simulation time und Wallclock time synchron
sein, andernfalls wirkt die simulierte Umgebung unrealistisch. Ein stockender Fluss der Signale oder eine nicht
synchronisierte Daten¨ubertragung l¨asst das Bewusstsein einer teilnehmenden Person sofort auf das technische
System der Signal¨ubertragung fokussieren, sei es nun Bild, Ton oder Haptik: Das Wahrnehmungsfeld wird um
die Metaebene der verwendeten Technologie erweitert – der Zustand der Immersion ist verloren. Oder in der
Termiologie von Platons H¨ohlengleichnis: Das Publikum betrachtet nicht mehr nur die Schatten an der Wand,
sondern auch die Figuren auf dem Sims und die Fackel im Raum. Um das Eintauchen in die Szenerie zu erhalten,
sollte deshalb eine Bildwiederholungsrate von mindestens 60 Frames per Second (FPS) gew¨ahrleistet sein, gerade
bei physisch immersiven Umgebungen (vgl. [SSC01, S. 15 ff.]). Den Anforderungen entsprechend kommen f¨ur
das Volume Rendering in Echtzeit m¨oglichst leistungsstarke Computergrafik-Systeme zum Einsatz mit Methoden
wie dem Parallel Rendering, ein nebenl¨aufiges Synthetisieren der Szene. Dabei befindet sich ein System paralleler
Computer im selben Maschinenraum oder Kabinet, weist homogene Prozessoren auf und kommuniziert ¨uber ein
Netzwerk mit einer Latenzzeit von weniger als 100 µs (siehe [Fuj00, S. 17]). Die Renderstationen k¨onnen laut
Makhinya [Mak12, S. 3 f.] handels¨ubliche PCs mit leistungsstarken Grafikkarten sein. Jede Station rendert einen
Teil der gesamten Szene. Die synthetisierten Bilddaten werden schliesslich synchronisiert an die Displays gesendet.
Die Methode kommt z.B. bei Power walls zur Anwendung (siehe Abbildung 2.12) – oder aber in einem CAVE.
Abbildung 2.12.: Power wall mit 2 × 3 Displays
Die acht Renderstationen des Haptic CAVE System im cpvrLab verf¨ugen ¨uber Intel 7i CPUs und sind mit Grafikkar-
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 8
ten vom Typ ASUS ENGTX400 best¨uckt (PCI Express 2.0, NVIDIA GeForce GTX 4802
, 1536 MB GDDR5 Memory,
siehe E-Mail im Anhang B.1). Das Framework I3D beinhaltet u.a. den Szenengraph OSG und die Software Equali-
zer3
f¨ur das Parallel Rendering (vgl. [Hau15, S. 7]). Die Cluster-Rendering Software Equalizer ist eine Entwicklung
des Institutes f¨ur Informatik an der Universit¨at Z¨urich und des cpvrLab am HuCE der Berner Fachhochschule in
Biel/Bienne. Kommerziellen Support bietet die Firma Eyescale Software GmbH456
mit Sitz in Neuchˆatel. Eilemann,
Makhinya und Pajarola [EMP09, S. 1] beschreiben Equalizer als Client/Server konzipierte L¨osung. Die Software
managt das Parallel Rendering mit dem OpenGL Multipipe SDK (MPK) als Multi-Pipeline Rendering (siehe Ab-
bildung 2.13):
In der Konfiguration des Equalizer Servers (Config) auf dem Server Node (vgl. [Mak12, S. 22]) k¨onnen Render-
stationen festlegt werden (CPUs resp. Nodes). Einem solchen Node kann eine oder mehrere Pipeline (GPU resp.
Pipe) zugewiesen werden. Eine Pipe rendert ein Fenster (Window), das einen oder mehrere Kan¨ale (Channels) mit
Bilddaten beliefert. So kann z.B. eine Renderstation Bilddaten f¨ur mehrere Kan¨ale synthetisieren, welche jeder f¨ur
sich wenig Rechenleistung beansprucht (vgl. [EMP09, S. 4]).
Abbildung 2.13.: Schema einer Konfiguration von Equalizer f¨ur ein CAVE
Im Haptic CAVE System des cpvrLab ist Equalizer f¨ur zwei verschiedene Betriebsmodi konfiguriert (vgl. [Hau15]): Im
’single Mode’ wird lediglich eine eine Wand beschienen, womit zwei Projektoren und zwei Renderstation in Betrieb
sind. Im ’parallel Mode’ werden acht Renderstationen je einem Projektor zugeteilt, die Stereobildwiedergabe f¨ur
das gesamte CAVE ist aktiviert.
2GeForce GTX 480. In: Website Geforce, NVIDIA Corporation 2015. URL: http://www.geforce.com/hardware/desktop-gpus/
geforce-gtx-480 (besucht am ).
3Equalizer Community. URL: http://www.equalizergraphics.com/ (besucht am 6. Februar 2015).
4Website der Firma Eyescale Software GmbH. URL: http://www.eyescale.ch/ (besucht am 30. Mai 2015).
5Equalizer auf github, URL: https://github.com/Eyescale/Equalizer (besucht am 30. Mai 2015).
6Binary von Equalizer als Ubuntu-Paket im Repository von Stefan Eilemann auf launchpad. URL: https://launchpad.net/
~eilemann/+archive/ubuntu/equalizer (besucht am 30. Mai 2015).
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 9
3. Prototyp
Als Konzept des Prototypen werden die Problemstellung und sonstige Anforderungen erfasst. In den erg¨anzenden
Anforderungen ist n¨aheres zum Setup gelistet. Die Dom¨anen werden grafisch modelliert. Im Anschluss wird die
Umsetzung vorgestellt.
3.1. Konzept
3.1.1. Prim¨are Prototypanforderungen
Problemstellung:
Es soll eine Applikation zur Visualisierung von Volumengrafiken als Prototyp Verwendung finden.1
Sonstige Anforderungen:
ˆ Beim Start der Applikation soll ein Datensatz geladen und als Volumengrafik gerendert werden.
ˆ Das Datensatz soll mit einer statischen Transferfunktion (TF) ¨uber eine LUT eingef¨arbt werden.
ˆ ¨Uber ein User Interface (UI) soll die Volumengrafik mit Zoom, Pan und Rotation erkundet werden k¨onnen.
3.1.2. Erg¨anzende Prototypanforderungen
ˆ Das NodeKit von OSG2
wird um einen Volume-Rendering-Knoten erweitert (’Framework’) und eine Appli-
kation in C/C++ (’App’) unter Verwendung ebendieser Erweiterung implementiert. Als UI wird OsgVolume
genutzt. Die Volumengrafik wird per GLSL3
auf der GPU gerendert.
ˆ Generell wird mit der C++ Standard Template Library (STL)4
gearbeitet. F¨ur lineare Algebra auf der CPU
kann die Template-Library Eigen5
benutzt werden, f¨ur weitere Funktionalit¨at k¨onnen Elemente aus Boost6
Verwendung finden.
ˆ Der Quellcode erh¨alt Kommentare, mit Doxygen7
wird eine Dokumentation in HTML erstellt. Das Source Co-
de Management (SCM) resp. die Versionsverwaltung erfolgt mit der Software git8
auf der Projektmanagement-
Plattform des cpvrLab.
ˆ Anleitungen:
– Demonstrates OSG’s volume rendering capabilities . . . . OpenSceneGraph Wiki.
– How to : Use OsgVolume with Volumetric Data. Digital Learning Foundation DLF.
1siehe auch: osgVolume. URL: http://trac.openscenegraph.org/projects/osg/wiki/Community/Tasks/osgVolume (abgerufen
am 5. Juni 2015)
2OpenSceneGraph OSG. URL: http://www.openscenegraph.org/ (besucht am 3. M¨arz 2015).
3OpenGL Shading Language GLSL, URL: https://www.opengl.org/documentation/glsl/ (besucht am 15. M¨arz 2015).
4The C++ Standard Library STL, URL: http://www.stl.org/ (besucht am 3. M¨arz 2015).
5Eigen – C++ template library for linear algebra, URL: http://eigen.tuxfamily.org/ (besucht am 3. M¨arz 2015).
6Boost – peer-reviewed portable C++ source libraries, URL: http://www.boost.org/ (besucht am 3. M¨arz 2015).
7Doxygen documentation system, URL: http://www.doxygen.org/ (besucht am 3. M¨arz 2015).
8git – the stupid content tracker, URL: http://git-scm.com/ (besucht am 3. M¨arz 2015).
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 10
3.1.3. Dom¨anenmodell
Dataset
- e.g. *.dcm
User Interface
- Zoom
- Pan
- Rotate
modify MV
Visualizer
Raycaster
Volume Manager
- Model-View-Matrix
Renderer
- Data
- Render method
(e.g. Raycaster)
- Model-View-Matrix
Order
- object order
- image order
set
Compositing
- front-to-back
- back-to-front
set
set
read
use
send frame
Image Reader
- e.g. DCMTK, ITK/VTK
request reading
Transferfunction
- CLUT
- 1D Histogramm
- 2D Scatterplot
set
Abbildung 3.1.: Dom¨anenmodell-Diagramm.
Als Prototyp wird ein Volume Manager verwendet (siehe Abbildung 3.1). Der Volume Manager hat Zugriff auf
einen Image Reader, welcher ein Dataset einlesen kann. Der Volume Manager sendet die eingelesenen Daten zum
Renderer. Dem Renderer steht ein Raycaster und eine Transferfunktion zur Verf¨ugung. Damit werden die Daten zu
einer Volumengrafik synthetisiert. Die berechneten Frames werden vom Renderer zum Visualizer gesendet.
¨Uber ein UI kann per Zoom, Pan und Rotation die Model-View-Matrize des Volume Managers ver¨andert werden.
Der Volume Manager seinerseits aktualisiert die Model-View-Matrize auf dem Renderer.
Die Elemente im Dom¨anenmodell haben ihre Entsprechung in folgenden Komponenten:
Der Image Reader kann z.B. die Bibliothek Visualization Toolkit (VTK) sein, das Dataset kann z.B. ein DICOM-
Datensatz im *.dcm-Format sein. Der Renderer findet seine Entsprechung in der Grafikkarte, der Raycaster und
die Transferfunktion sind Fragment-Shader-Programme. Der Visualizer kann ein Display sein, oder dem Setup des
Haptic CAVE System entsprechend ein Projektor.
3.2. Testing
Im Verlaufe des Semesters sind f¨unf der acht Projektoren des Haptic CAVE System ausgestiegen und befanden sich
zum Zeitpunkt des Testings in Reparatur – es war geplant, lediglich eine Wand zu bescheinen. Als Konfiguration
von I3D resp. Equalizer w¨are demnach der ’single Mode’ gew¨ahlt worden (vgl. Abschnitt 2.2.1). Das Testing wurde
jedoch auf dem Laptop des Autors durchgef¨uhrt.9
9ASUS G55JR, CPU: 2× Intel Quadcore i7, Grafikkarte: NVIDIA Geforce GTX 760M.
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 11
4. Resultate
Es werden die Antworten zu den im Pflichtenheft verankerten Fragen betreffend Evaluation UI, Transferfunktion
und Big Volume Data pr¨asentiert. Im Anschluss wird die CAVE-Integration ausgewertet.
4.1. Evaluation UI
Obwohl Qt gebrauch sowohl von OpenGL als auch von OSG macht – es gibt die Namespaces QGl und QOsg – r¨at
Makhinya [Mak12, S. 86] davon ab, Qt mit Equalizer einzusetzen (Stand 2012):
”
Equalizer is already managing rendering loop, events handling and OpenGL context sharing, while
QT framework has its own events processing loop, and straightforward integration causes overheads
and OpengGL context conflicts. Solving these problems would require structural changes to the main
rendering loop of Equalizer. Hopefully the framework will be extended to fully support QT soon, in the
meantime less invasive approach to complete existing applications with a GUI was implemented.”
Qt scheidet deshalb aus – da die Applikation im CAVE laufen soll, kann auf grafische Elemente im UI verzichtet
werden. Die Bibliothek Nana oder das UI von OSG wird also Verwendung finden. Zwar ist Nana bis dato in einer
Beta-Version erh¨altlich, bietet aber die ben¨otigten Grundfuntkonalit¨aten wie Pan und Zoom ¨uber Tastatur und
Maus.1
Auch das UI von OSG ist noch in Entwicklung – der definitive Entscheid muss also zum Zeitpunkt der
Umsetzung gef¨allt werden.
4.2. Transferfunktion
Das finden einer geeigneten TF f¨ur die Stereobildwiedergabe mit Anaglyphen er¨ubrigt sich, da eine Stereobildwie-
dergabe mit Anaglyphen nicht professionell genug ist, um tats¨achlich eine sinnvolle Anwendung zu finden.
Die im Testing verwendete TF kann vom Benutzer nicht ver¨andert werden. Da die r¨aumliche Lesbarkeit einer
Volumengrafik stark von der TF abh¨angt, k¨onnte bei der Bachelorarbeit z.B. eine multi-dimensionale TF mit
Benutzerinteraktion implementiert werden. Folgende Publikationen enthalten weitergehende Informationen:
ˆ [RTVG06, S. 249-274]: Chapter 10 Transfer-Function Reloaded.
ˆ Stefan Roettger, Michael Bauer, Marc Stamminger: Spatialized Transfer Functions. Computer Graphics
Group, University of Erlangen, Germany. In: K. W. Brodlie, D. J. Duke, K. I. Joy (Editors): EUROGRA-
PHICS - IEEE VGTC Symposium on Visualization (2005).
4.3. Big Volume Data
Als Datensatz wurde zu Beginn des Projektes vom cpvrLab ein micro-CT in Aussicht gestellt. Die Daten sind
nach Aussagen des Betreuers jedoch nicht mehr auffindbar. Nach einem Gespr¨ach mit dem Kommilitone Sandro
Blatter, seinerseits Fachperson f¨ur Medizinisch-technische Radiologie HF am Inselspital in Bern, wurde dem Autor
des Berichtes der Informatikingenieur Martin Zbinden2
als Kontaktperson angegeben f¨ur eine eventuelle Bezugs-
quelle von anonymisierten MRI-Patientenbilder (siehe E-Mail im Anhang B.2). Schliesslich wurde f¨ur die weitere
Arbeit jedoch auf Daten von Roettger [VLIB] (
”
The Volume Library”) und Rosset [OSIRIX] (
”
OsiriX DICOM files”)
zur¨uckgegriffen.
1nana C++ Library. URL: http://nanapro.org/en-us/ (besucht am 10. M¨arz 2015)
2siehe Martin Zbinden, Informatikingenieur. In: Universit¨atsinstitut f¨ur Diagnostische und Interventionelle Neuroradiologie, Inselspital
Bern. URL: http://www.neurorad.insel.ch/de/ueber-uns/unser-team/, besucht am 12. Juni 2015.
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 12
4.4. CAVE-Integration
Im Verlaufe des Semesters sind f¨unf der acht Projektoren des Haptic CAVE System ausgestiegen und befanden sich
zum Zeitpunkt des Testings in Reparatur. Ein Testlauf wollte Robert Hauck nicht durchf¨uhren. Die Konfiguration
von Equalizer f¨ur das CAVE konnte demnach durch den Autor nicht eingesehen werden. Wie Herr Hauck aber
mitteilte, sei mit dem Verwenden von Equalizer und OSG gew¨ahrleistet, dass auch ein Volume gerendert werden
k¨onne.
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 13
5. Schlussfolgerungen und Ausblick
Das Einlesen in die Thematk des Volume Rendering und in die Technologien OSG, CAVE und Parallel Rendering ist
erfolgt und die Grundlagen dazu sind verstanden. Eine Recherche zum Thema resultierte in einer Auswahl von rele-
vanten Publikationen. Als Prototyp wurde die in OSG enthaltene Applikation osgVolume mit einer Transferfunktion
getestet.
Zwei Themenbereiche zur weiteren Vertiefung der Arbeiten haben sich herauskristallisiert: Zum einen ein speicher-
optimiertes Handling der Volumendaten, zum anderen die Implementation einer benutzerinteraktiven Transferfunk-
tion. Als UI kann sich hier die Bibliothek Nana eignen, oder aber jenes von OSG – beide befinden sich noch in
aktiver Entwicklung. N¨aheres wird in der Projektdefinitionsphase der Bachelorarbeit festgelegt werden.
Die Implementation eines Volume Managers f¨ur das Framework I3D k¨onnte mit einem Fassade-Pattern oder einer
Wrapper-Klasse implementiert werden. Dabei kann die meiste Funktionalit¨at aus bestehenden Methoden ¨ubernom-
men werden. Neue Methoden erweitern u.U. die Klassen mit Funktionalit¨at, eventuell werden bestehende Methoden
¨uberschrieben. F¨ur die Implementation im Zuge der Bachelorarbeit kann aber mit Bestimmheit gesagt werden, dass
der im OSG-Namensraum osgVolume vorhandene Volume Rendering-Node Verwendung finden wird.
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 14
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 15
Abk¨urzungen
API Application Programming Interface
BLAS Basic Linear Algebra Subroutines
BUAS Bern University of Applied Sciences
CAVE Cave Automatic Virtual Environment
CG Computergrafik
CPU Central Processing Unit
CPVR Computer Perception and Virtual Reality
CT Computertomograph
CUDA Compute Unified Device Architecture
DICOM Digital Imaging and Communications in Medicine
DTI Diffusion Tensor Imaging
DVR Direct Volume Rendering
DW-MRI Diffusion Weighted Magnetic Resonance Imaging
FBO Frame Buffer Object
FDVR Frequency Domain Volume Rendering
FEM Finite Element Method
FFT Fast Fourier Transformation
FPS Frames per Second
FVR Fourier Volume Rendering
GLSL OpenGL Shading Language
GPU Graphic Processing Unit
HuCE Institute for Human Centered Engineering
I3D Immersive 3D
LOD Level of Detail
LUT Lookup Table
MPK OpenGL Multipipe SDK
MRI Magnetic Resonance Imaging
MRT Magnetresonanztomograph
OpenCL Open Computing Library
OpenGL Open Graphics Library
OSG OpenSceneGraph
PBO Pixel Buffer Object
PC Personal Computer
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 16
PET Positronen-Emissions-Tomograph
ROI Region of Interest
SCM Source Code Management
SDK Software Development Kit
STL C++ Standard Template Library
TF Transferfunktion
UI User Interface
VR Virtual Reality
VTK Visualization Toolkit
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 17
Glossar
Anaglyphe Als Anaglyphe wird ein in Komplement¨arfarben etwas seitlich verschoben ¨ubereinander projiziertes
Bild bezeichnet, das beim Betrachten durch eine Farbfilterbrille mit gleichen Komplement¨arfarben r¨aumlich
erscheint.
Siehe auch: Stereobildwiedergabe.
Big Volume Data Bei Big Volume Data (auch ’Large Volumetric Dataset’ oder ’Large Dataset for Volume-
Rendering’) handelt es sich um grosse Datenmengen, die als Ganzes im Speicherbereich der Graphikkarte
keinen Platz finden. Dabei kann es sich um hochaufgel¨oste Daten eines Micro-CT handeln, aber auch um
den Output z.B. einer physikalischen Simulation. Ethymologisch ist der Begriff dem ’buzzword’ Big Data
angelehnt, eine g¨agnige Bezeichnung f¨ur grosse Datenmengen heterogener Herkunft und Thematik.
Siehe auch: Computertomografie, Volume Rendering.
Bildwiederholungsrate Die Bildwiederholungsrate (engl. Framerate) gibt die Anzahl der Frames pro Sekunde
(FPS) in Hz an.
Cave Automatic Virtual Environment Ein Cave Automatic Virtual Environment (CAVE) ist ein Raum, in den
eine 3D-Umgebung projiziert wird. Das CAVE z¨ahlt zu den physisch immersiven virtuellen Umgebungen.
Siehe auch: Immersion.
Computertomografie Die Computertomografie (CT) ist ein bildgebendes Verfahren in der Nuklearmedizin. Dabei
wird durch Schicht f¨ur Schicht erstellte Aufnahmen auch die Struktur der Weichteile eines K¨orpers sichtbar
gemacht.
Diffusions-Tensor-Bildgebung Die Diffusions-Tensor-Bildgebung (engl. Diffusion Tensor Imaging DTI, auch engl.
Diffusion Tensor Magnetic Resonance Imaging DT-MRI) ist ein DW-MRI, welches zus¨atzlich die Richtungs-
abh¨angigkeit der Diffusion aufzeichnet. Nebst dem Grauwert eines Voxels wird eine 3x3-Matrize errechnet –
ein sog. Tensor, welcher das Diffusionsverhalten festh¨alt. Diese Methode generiert markant gr¨ossere Daten-
mengen als ein MRI.
Siehe auch: Magnetresonanztomografie, Diffusionsgewichtete Magnetresonanztomografie.
Diffusionsgewichtete Magnetresonanztomografie Die Diffusionsgewichtete Magnetresonanztomografie (engl.
Diffusion Weighted Magnetic Resonance Imaging DW-MRI) ist ein MRI, welches zus¨atzlich die r¨aumliche
Diffusionsbewegung von Wassermolek¨ulen aufzeichnet. Dieses Verfahren erm¨oglichet z.B. die Darstellung
der grossen Nervenfaserb¨undel des Gehirns. Dazu wird weder Kontrastmittel noch ionisierende Strahlung
verwendet.
Siehe auch: Magnetresonanztomografie, Diffusions-Tensor-Bildgebung.
Digital Imaging and Communications in Medicine Digital Imaging and Communications in Medicine (DICOM,
dt. Digitale Bildverarbeitung und -kommunikation in der Medizin) ist ein Standard zur Speicherung und zum
Austausch medizinischer Daten. Diese k¨onnen auch digitale Bilder, deren Segmentierung, Oberfl¨achendefini-
tionen oder Bildregistrierungen enthalten. Der Standard ISO/TC215 f¨ur Medizininformatik beinhaltet sowohl
das Dateiformat (Dateinamenerweiterung *.dcm) als auch ein Kommunikationsprotokoll f¨ur den Datenaus-
tausch.
Direct Volume Rendering Beim Direct Volume Rendering werden die Voxel-Daten mit einem optischen Modell
berechnet. Dabei k¨onnen Emission, Reflektion, Streuung, Absorption und Verdeckung von Licht ber¨ucksichtigt
werden. Die Methode steht im Kontrast zu indirekten Rendering-Methoden, bei denen die Ober߬ache mit
einem Pre-Prozess extrahiert wird (z.B. Isosurfaces).
Siehe auch: Volume Rendering.
Immersion Als Immersion wird das Eintauchen einer teilnehmenden Person in eine virtuelle Realit¨at bezeichnet.
Die Immersion kann dabei ausschliesslich mental sein – wie z.B. beim lesen eines Buches – oder aber auch
physisch erfahren werden: Die virtuelle Welt umgibt die Person vollst¨andig.
Siehe auch: Cave Automatic Virtual Environment.
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 18
Immersive 3D Immersive 3D (I3D) ist ein Rendering-Framework f¨ur das Haptic CAVE System im cpvrLab des
HuCE.
Siehe auch: Rendering, Cave Automatic Virtual Environment.
Level of Detail Level of Detail, kurz LOD: dt. Detaillierungsgrad.
Magnetresonanztomografie Die Magnetresonanztomografie (MRT, auch Kernspintomografie, engl. Magnetic
Resonance Imaging MRI) ist ein bildgebendes Verfahren in der medizinischen Diagnostik.
Parallel Rendering Als Parallel Rendering wird eine nebenl¨aufig verteilte Bildsynthese bezeichnet.
Siehe auch: Rendering.
Positronen-Emissions-Tomografie Die Positronen-Emissions-Tomografie (PET) ist ein bildgebendes Verfahren in
der Nuklearmedizin. Dabei wird die Verteilung einer zuvor in den K¨orper eingebrachten, schwach radioaktiven
Substanz (Radiopharmakon) im lebenden Organismus detektiert. So k¨onnen biochemische und physiologische
Funktionen sichtbar gemacht werden (funktionelle Bildgebung).
Realtime Rendering Als Realtime Rendering (dt. Echtzeit-Rendern) wird die Bildsynthese zur Laufzeit unter
Ber¨ucksichtigung von Benutzerinteraktion bezeichnet. Der Renderer synthetisiert die Bilddaten gem¨ass der
aktuellen Szenerie. Im Gegensatz dazu kann die Bildsynthese auf sogenannten Render-Farmen f¨ur vorbe-
stimmte Szenen ¨uber Stunden, Tage oder Wochen dauern.
Siehe auch: Rendering.
Rendering Rendering oder rendern (von engl. ’to render’) bezeichnet in der Computergrafik den Vorgang der
Bildsynthese, also die Berechnung eines Bildes aus Rohdaten. Computerprogramme zum Rendern von Bildern
werden Renderer genannt.
Stereobildwiedergabe Eine Stereobildwiedergabe kann durch spektrales Multiplexing (gleichzeitige ¨Ubertragung
von mehreren Nachrichten ¨uber denselben Sender) mit Anaglyphen realisiert werden. Bei professionellen
Systemen werden jedoch zwei polarisierte Kan¨ale getrennt projiziert, die Projektionen mit ebenso polarisierten
3D-Brillen betrachtet.
Siehe auch: Anaglyphe.
Szene Eine Szene ist ein virtuelles r¨aumliches Modell, das Lichtquellen, Objekte und deren Materialeigenschaften
sowie die Position und Blickrichtung eines Betrachters festlegt.
Szenengraph Ein Szenengraph ist eine objektorientierte Datenstruktur zur Datenhaltung einer Szene. Die Objekte
einer Szene werden dabei hierarchisch gruppiert, die Struktur ist als Graph angelegt.
Siehe auch: Szene.
Volume Rendering Als Volume Rendering wird die Synthese von Voxel-basierten Grafiken bezeichnet. Das Resultat
wird (dt.) auch Volumengrafik genannt.
Siehe auch: Direct Volume Rendering, Rendering, Voxel.
Voxel Kurz f¨ur Volumen-Pixel, ein volumetrischer Bildpunkt einer 3D-Rastergrafik.
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 19
Literaturverzeichnis
[AS12] Edward Angel und Dave Shreiner.
”
Advanced Rendering“. In: Interactive computer graphics: A top-
down approach with Shader-Based OpenGL. 6. Aufl. Boston: Pearson, 2012. Kap. 11. ISBN: 0-13254-
523-3.
[CPVR11a]
”
Haptic CAVE“. In: cpvrLab Wiki. Institute for Human Centered Engineering HuCE, BUAS, 23. Jan.
2011. URL: https://www.cpvrlab.ti.bfh.ch/wiki/huce:cpvrlab:cave:start (besucht am
06. 02. 2015).
[CPVR11b]
”
Visualization“. In: cpvrLab Wiki. Institute for Human Centered Engineering HuCE, BUAS, 23. Jan.
2011. URL: https://www.cpvrlab.ti.bfh.ch/wiki/huce:cpvrlab:cave:visualization:
start (besucht am 06. 02. 2015).
[CPVR11c] Robert Hauck und Urs K¨unzler.
”
Immersive 3D“. In: Website des cpvrLab. Institute for Human Cen-
tered Engineering HuCE, BUAS, 2011. URL: https://www.cpvrlab.ti.bfh.ch/research/
projects/immersive-3d/ (besucht am 06. 02. 2015).
[EMP09] Stefan Eilemann, Maxim Makhinya und Renato Pajarola.
”
Equalizer: A Scalable Parallel Rendering
Framework“. In: IEEE Transactions on Visualization and Computer Graphics, No. 3. Bd. 15. Mai 2009.
[Fuj00] Richard M. Fujimoto. Parallel and Distributed Simulation Systems. Wiley, 2000.
[Hau15] Robert Hauck. Programming Guide for I3D. Version 1.7. Institute for Human Centered Engineering
HuCE, BUAS, 28. Jan. 2015.
[Joh+06] Chris Johnson u. a. NIH/NSF Visualization Research Challenges. IEEE, Jan. 2006. ISBN: 0-7695-
2733-7. URL: http://vgtc.org/about-us/national-initiative/nihnsf-visualization-
research-challenges-report (besucht am 28. 05. 2015).
[Kaj86] James T. Kajiya.
”
The Rendering Equation“. In: ACM 20.4 (Aug. 1986).
[Mak12] Maxim Makhinya.
”
Performance Challenges in Distributed Rendering Systems“. Diss. Institut f¨ur
Informatik, Universit¨at Z¨urich, 2012. URL: http : / / www . zora . uzh . ch / 62015/ (besucht am
20. 02. 2015).
[Mar07] Paul Martz. OpenSceneGraph quick start guide: A quick introduction to the Cross-Platform open
source scene graph API. Louisville CO: Skew Matrix Software, 2007. URL: http://www.skew-
matrix.com/OSGQSG/ (besucht am 01. 06. 2015).
[OSIRIX] Antoine Rosset. DICOM sample image sets. URL: http://www.osirix-viewer.com/datasets/
(besucht am 28. 05. 2015).
[Rez05] Christof Rezk-Salama.
”
Volume Rendering Techniques for General Purpose Graphics Hardware“. In: it
– Information Technology 1.47 (2005), S. 54–56.
[RTVG06] Christof Rezk-Salama u. a. Real-Time Volume Graphics. 1. Aufl. Wellesley, Mass: A K Peters, 2006.
ISBN: 1-56881-266-3. URL: http://www.real-time-volume-graphics.org/.
[SSC01] Mel Slater, Anthony Steed und Yiorgos Chrysanthou. Computer Graphics and Virtual Environments
– From Realism to Real-Time. 1. Aufl. Upper Saddle River, N.J.: Addison-Wesley, 2001. ISBN: 0-
201-62420-6.
[VLIB] Stefan Roettger. The Volume Library. Jan. 2006. URL: http://www9.informatik.uni-erlangen.
de/External/vollib/ (besucht am 28. 05. 2015).
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 20
Bildnachweis
Titelbild: Oben: Lopster, Tomato, Frog. Unten: Orange, The Carp, Bonsai #2 (v.l.n.r). In: [VLIB].
Abbildung 2.1: V.l.n.r, v.o.n.u:
Physik: Hejazialhosseini B., Rossinelli D., Conti C., Koumoutsakos P.: Volume-rendered density field of late-
time shock-bubble interactions at M = 3. Orange/ blue denote high/ low density values. Swiss National
Supercomputing Centre CSCS, 2014. URL: http://www.cscs.ch/cscs/enabling_science/user_
lab/index.html (besucht am 28. Mai 2015).
Klimatologie: 17 Jul 2005 22:00:00, Bildschirmfoto der Animation bei Abspielzeit 1:01/1:28. In: Greg Shirah
u.a.: Volume-Rendered Global Atmospheric Model. NASA’s Scientific Visualization Studio, 2014. URL:
http://svs.gsfc.nasa.gov/goto?4180 (besucht am 28. M¨arz 2015).
Arch¨aologie: Ein Werkzeug zur Holzbearbeitung [. . . ]. In: Mit dem Hochleistungs-Computertomographen
durchleuchtet – neue Erkenntnisse zur keltischen Deponierung. Arch¨aologische Bodenforschung Basel-
Stadt, August 2013. URL: http://www.archaeologie.bs.ch/ausgraben/aktuelle-ausgrabungen/
deponierung-2013.html (besucht am 29. Mai 2015), Bearbeitet mit GIMP.
Anatomie: Antoine Rosset: P120/0229 RM, Human head and neck, CT scan. In: Digital Anatomy – The
Body Revealed. Media set 1411, Science Photo Library. URL: http://www.sciencephoto.com/set/
1411/digital-anatomy-the-body-revealed (besucht am 29. Mai 2015).
Abbildung 2.2: Ohne Bildunterschrift. In: Pr¨asentationen zu [RTVG06].
Abbildung 2.3: Ohne Bildunterschrift. In: Pr¨asentationen zu [RTVG06].
Abbildung 2.4: Ohne Bildunterschrift. In: Pr¨asentationen zu [RTVG06].
Abbildung 2.5: Ohne Bildunterschrift. In: Pr¨asentationen zu [RTVG06].
Abbildung 2.6: Ohne Bildunterschrift. In: Pr¨asentationen zu [RTVG06].
Abbildung 2.7: Example of octree. In: I Will Get That Job At Google. URL: http://iwillgetthatjobatgoogle.
tumblr.com/post/18742139332/octree (besucht am 15. M¨arz 2015).
Abbildung 2.12: Ausschnitt aus: Fig. 1. Various Equalizer use cases: (a) immersive CAVE, (b) display wall and
(c) scalable volume rendering. In: [EMP09, S. 1].
Abbildung 2.8: Ohne Bildunterschrift (Datei: cave complete 3d 1280px.jpg). In: [CPVR11a].
Abbildung 2.9: Ohne Bildunterschrift (Datei: projectors 1280px.jpg). In: [CPVR11b].
Abbildung 2.10: Ohne Bildunterschrift (Dateien: polarizer.png und glasses.jpg). Bearbeitet mit GIMP. In: [CP-
VR11b].
Abbildung 2.11: Ohne Bildunterschrift (Dateien: projector correctio.png und projector resoluti.png). In: [CP-
VR11b].
Abbildung 2.13: Fig. 12. An example Equalizer CAVE configuration with the associated real-world counterparts.
In: [EMP09, S. 7].
Abbildung 3.1: Dom¨anenmodell-Diagramm, erstellt mit Umlet. Roland Bruggmann, 2015.
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 21
Abbildungsverzeichnis
2.1. Wissenschaftliche Visualisierungen mit Volume Rendering . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. Texture slicing vs. Raycasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3. Ray setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.4. Sichtstrahl mit dem Emissions-Absorptions-Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.5. Klassifikation mit einer Transferfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.6. Voxel in Graustufen und koloriert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.7. Bricking des Raumes und Modellierung als Octree . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.8. R¨aumliche Anordnung des Haptic CAVE System . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.9. Komposition zweier Projektoren zum Bescheinen einer Wand . . . . . . . . . . . . . . . . . . . . . 7
2.10. Schema eines 45 °-Polarisationsfilters und 3D-Brille . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.11. Anordnung der Projektoren f¨ur die Stereobildwiedergabe und erreichte Aufl¨osungen . . . . . . . . . 8
2.12. Power wall mit 2 × 3 Displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.13. Schema einer Konfiguration von Equalizer f¨ur ein CAVE . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1. Dom¨anenmodell-Diagramm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 22
A. Arbeitsorganisation
A.1. Projektbeschrieb und Pr¨asentationsdaten
Projekt (Vorschlag Dozierende)
OSG Volume Rendering
Aufgabe Für das CAVE Rendering Framework welches of Open Scene Graph und Equalizer
Libraries aufbaut soll ein neuer Volume Rendering Node für das Rendering
medizinischer Daten integriert werden. Das Rendering soll die die Möglichkeiten
modernere Grafik-Hardware ausnutzen und soweit möglich auf der GPU
ausgeführt werden und mittels der OpenGL Shading Language (GLSL)
implementiert sein.
Technologien OpenGL, GLSL, OSG, Equalizer, C++
URL http://www.openscenegraph.org
Schwerpunkt Computer Perception and Virtual Reality
Betreuende Urs Künzler
Kontakt urs.kuenzler@bfh.ch
© 2014 Berner Fachhochschule Technik und Informatik - Fachbereich Informatik
Präsentationen Projekt2
Freitag, 05.06.2015 (Raum N311), 14:00-15:30
Beteiligte Projekt Zeit Dauer (m) Betreuer
Christoph Seiler (seilc1) Partnervorschläge in einer Partnerbörse 14:05-14:15 10 arb1
Daniel Inversini (inved1), Julien Villiger (villj2) Unity3D im CAVE 14:20-14:35 15 klu1
Marco Füllemann (fullm1), Janosch Rohdewald (rohdj1) Analyse von Lymphknoten in PET/CT Aufnahmen 14:40-14:55 15 hsm4
Roland Bruggmann (brugr9) OSG Volume Rendering 15:00-15:10 10 klu1
Camille Zanni (zannc2) 3D CAD for Human Eye Surgery 15:15-15:25 10 klu1
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 23
A.2. Zeitplan
Projekt230.03.2015
Gantt-Diagramm3
VorgangAnfangEnde
Pflichtenheft20.03.1520.03.15
VolumeRenderingPipeline20.03.1525.03.15
Prototype26.03.1513.05.15
BigDataset14.05.1520.05.15
TFF21.05.1527.05.15
CAVE28.05.1503.06.15
Präsentation05.06.1505.06.15
Bericht12.06.1512.06.15
2015
Woche10Woche11Woche12Woche13Woche14Woche15Woche16Woche17Woche18Woche19Woche20Woche21Woche22Woche23Woche24Woche25
02.03.1509.03.1516.03.1523.03.1530.03.1506.04.1513.04.1520.04.1527.04.1504.05.1511.05.1518.05.1525.05.1501.06.1508.06.1515.06.15
PflichtenheftBerichtPräsentation
[20.03.15-20.03.15]
Pflichtenheft
[20.03.15-25.03.15]
VolumeRenderingPipeline
[26.03.15-13.05.15]
Prototype
[14.05.15-20.05.15]
BigDataset
[21.05.15-27.05.15]
TFF
[28.05.15-03.06.15]
CAVE
[05.06.15-05.06.15]
Präsentation
[12.06.15-12.06.15]
Bericht
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 24
A.3. Arbeitsjournal
Summa Typ Budget Haben Rest Beschreibung
A 12.0 12.2 -0.2 Kontaktunterricht
B 108.0 204.7 -96.7 Selbststudium
Details
Datum von bis Std Typ Tätigkeit Details
Mi 04.02.15 13:30 14:00 0.50 A Projektwahl
14:30 19:00 4.50 B Quellen, Dokumentation
Do 05.02.15 15:00 20:00 5.00 B Quellen, Dokumentation
22:30 00:00 1.50 B Lesen
Fr 06.02.15 00:00 01:30 1.50 B Lesen
14:30 14:45 0.25 B Quellen Ausleihe (Bibliothek)
15:30 19:00 3.50 B Dokumentation
23:00 00:00 1.00 B Lesen
Sa 07.02.15 00:00 01:30 1.50 B Lesen
21:00 21:30 0.50 B Dokumentation
So 08.02.15 00:00 02:00 2.00 B Dokumentation
Mo 09.02.15 0.00
Di 10.02.15 0.00
Mi 11.02.15 13:00 13:15 0.25 B Quellen Ausleihe (Bibliothek)
13:30 16:45 3.25 B Quellen, Dokumentation
21:30 23:00 1.50 B Lesen OSG Quickstart Guide
Do 12.02.15 11:00 11:30 0.50 B Dokumentation
Fr 13.02.15 03:10 03:40 0.50 B Dokumentation
17:15 18:45 1.50 B Quellen, Dokumentation
22:30 00:00 1.50 B Dokumentation
Sa 14.02.15 00:00 02:30 2.50 B Dokumentation
So 15.02.15 0.00
Mo 16.02.15 0.00
Di 17.02.15 0.00
Mi 18.02.15 10:20 11:55 1.58 A Kick-Off Meeting
12:15 12:30 0.25 B Quellen Ausleihe (Bibliothek)
Do 19.02.15 0.00
Fr 20.02.15 23:00 00:00 1.00 B Lesen OSG scenegraph report
Sa 21.02.15 00:00 01:00 1.00 B Lesen OSG osgQtQuick
16:00 16:15 0.25 B Dokumentation Zeitplan
16:15 17:15 1.00 B Dokumentation
So 22.02.15 0.00
Mo 23.02.15 14:00 19:00 5.00 B Quellen, Dokumentation Uni ZH, KAUST
Di 24.02.15 0.00
Mi 25.02.15 10:20 11:55 1.58 A Introduction Robert Hauck: I3D, OSG, Equalizer
12:45 15:10 2.42 B Quellen Uni ZH, KAUST
15:25 16:10 0.75 B Quellen
Do 26.02.15 08:30 09:00 0.50 B Quellen
09:00 09:30 0.50 B Skizze GUI Qt, GLSL multithreading
09:30 10:00 0.50 B Skizze Rendering RS 0-7 als Render-Cluster
Fr 27.02.15 0.00
Sa 28.02.15 19:30 20:30 1.00 B Quellen Recherche: Eilemann
So 01.03.15 20:30 20:45 0.25 B Quellen Recherche: Volume Rendering, GL, CUDA
Mo 02.03.15 0.00
Di 03.03.15 0.00
Mi 04.03.15 10:20 11:55 1.58 B
13:00 13:30 0.50 B
13:30 14:30 1.00 A Besprechung Pflichtenheft
14:30 16:10 1.67 B Quellen Recherche: Trilinos, nana
Do 05.03.15 08:30 08:45 0.25 B Quellen Büchertransport
22:00 00:00 2.00 B Lesen Eng06
Fr 06.03.15 00:00 01:00 1.00 B Lesen Eng06
15:30 16:30 1.00 B Pflichtenheft
Sa 07.03.15 07:15 09:00 1.75 B Dokumentation Disposition, Zeitplan
09:00 12:00 3.00 B Pflichtenheft
So 08.03.15 0.00
Mo 09.03.15 0.00
Di 10.03.15 12:00 13:00 1.00 B Pflichtenheft Entwurf, E-Mail
Mi 11.03.15 10:20 11:05 0.75 B Quellen, Tech-Talk
13:00 14:00 1.00 B Lesen Eng06
14:00 14:30 0.50 A Besprechung Pflichtenheft, Disposition
14:30 16:10 1.67 B Pflichtenheft Zeitplan
Do 12.03.15 0.00
Fr 13.03.15 0.00
Sa 14.03.15 0.00
So 15.03.15 0.00
Mo 16.03.15 21:30 00:00 2.50 B Lesen Schubert / Scholl
Di 17.03.15 22:45 00:00 1.25 B Lesen DiVerdi / Candussi / Höllerer
Mi 18.03.15 10:30 11:55 1.42 A Besprechung Pflichtenheft
12:45 13:30 0.75 B Pflichtenheft
13:30 14:30 1.00 B Quellen
14:30 16:10 1.67 B Quellen
Do 19.03.15 22:00 23:30 1.50 B Lesen compression comparison
Fr 20.03.15 15:00 22:00 7.00 B Pflichtenheft Abgabe
Sa 21.03.15 0.00
So 22.03.15 0.00
Mo 23.03.15 0.00
Di 24.03.15 0.00
Mi 25.03.15 10:20 11:55 1.58 B cpvrLab einrichten Arbeitsplatz
12:45 15:10 2.42 B Besprechung
15:25 16:10 0.75 B cpvrLab
Do 26.03.15 0.00
Fr 27.03.15 0.00
Sa 28.03.15 0.00
So 29.03.15 0.00
Mo 30.03.15 16:00 16:30 0.50 B Pflichtenheft Update Zeitplan
Di 31.03.15 0.00
Mi 01.04.15 0.00
Do 02.04.15 11:45 12:00 0.25 B Planung
12:00 15:00 3.00 B Bericht Ray Casting, Parallel Rendering
Fr 03.04.15 0.00
Sa 04.04.15 0.00
So 05.04.15 0.00
Mo 06.04.15 0.00
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 25
Di 07.04.15 0.00
Mi 08.04.15 0.00
Do 09.04.15 0.00
Fr 10.04.15 0.00
Sa 11.04.15 0.00
So 12.04.15 0.00
Mo 13.04.15 0.00
Di 14.04.15 0.00
Mi 15.04.15 10:20 11:00 0.67 B cpvrLab Installations-Session
11:00 11:30 0.50 A Besprechung
12:45 15:10 2.42 B cpvrLab Installations-Session
15:25 16:10 0.75 B cpvrLab Installations-Session
Do 16.04.15 0.00
Fr 17.04.15 0.00
Sa 18.04.15 19:45 20:00 0.25 B Bericht Titel
So 19.04.15 0.00
Mo 20.04.15 0.00
Di 21.04.15 0.00
Mi 22.04.15 12:45 15:10 2.42 A CAVE intro Robert Hauck: Demo / Config etc.
Do 23.04.15 0.00
Fr 24.04.15 0.00
Sa 25.04.15 0.00
So 26.04.15 0.00
Mo 27.04.15 0.00
Di 28.04.15 0.00
Mi 29.04.15 0.00
Do 30.04.15 0.00
Fr 01.05.15 15:00 15:15 0.25 A Besprechung Ad-hoc
Sa 02.05.15 0.00
So 03.05.15 0.00
Mo 04.05.15 0.00
Di 05.05.15 0.00
Mi 06.05.15 0.00 Besprechung (EuroGraphics in Zürich)
Do 07.05.15 0.00
Fr 08.05.15 0.00
Sa 09.05.15 0.00
So 10.05.15 0.00
Mo 11.05.15 0.00
Di 12.05.15 0.00
Mi 13.05.15 11:00 11:30 0.50 A Besprechung
Do 14.05.15 0.00
Fr 15.05.15 0.00
Sa 16.05.15 0.00
So 17.05.15 0.00
Mo 18.05.15 0.00
Di 19.05.15 0.00
Mi 20.05.15 12:00 14:00 2.00 B Bericht Besprechungsgrundlage erstellen
14:00 14:30 0.50 A Besprechung Inhaltsverzeichnis etc.
Do 21.05.15 08:15 08:30 0.25 B cpvrLab Räumen Arbeitsplatz
16:00 17:00 1.00 B Prototyp Reopsitory, C++-Projekt erstellt
19:00 20:00 1.00 B Bericht Anpassung gemäss Besprechung
20:00 21:00 1.00 B Präsentation Entwurf
Fr 22.05.15 20:45 21:00 0.25 B Daten Recherche, download und Update Repo
Sa 23.05.15 13:00 13:15 0.25 B Arbeitsplanung Planung der verbleibenden 3 Wochen
13:15 15:30 2.25 B Bericht Literatur, Short summary, Einleitung
17:00 21:00 4.00 B Bericht Inhalte aus Pflichtenheft, Kapitel und Abschnitte
22:30 00:00 1.50 B Bericht Grundlagen, Literatur zuweisen, Anhang
So 24.05.15 00:00 03:30 3.50 B Bericht Grundlagen, Bildnachweis
13:00 15:30 2.50 B Bericht Grundlagen, Glossar
16:30 21:00 4.50 B Bericht Grundlagen, Bildnachweis
22:00 23:30 1.50 B Bericht Grundlagen
Mo 25.05.15 10:30 12:00 1.50 B Bericht Grundlagen
13:00 16:00 3.00 B Bericht Grundlagen
16:30 21:00 4.50 B Bericht Grundlagen
22:00 00:00 2.00 B Präsentation
Di 26.05.15 00:00 01:45 1.75 B Präsentation
Mi 27.05.15 11:30 12:00 0.50 A Besprechung
13:00 16:30 3.50 B Präsentation und Bericht
18:00 20:00 2.00 B Präsentation und Bericht
Do 28.05.15 14:00 18:00 4.00 B Prototyp
Fr 29.05.15 21:45 22:30 0.75 B Prototyp
Sa 30.05.15 11:30 14:30 3.00 B Prototyp
16:30 19:30 3.00 B Prototyp
20:30 00:00 3.50 B Prototyp
So 31.05.15 00:00 02:30 2.50 B Prototyp
15:00 18:00 3.00 B Prototyp
Mo 01.06.15 11:00 15:00 4.00 B Prototyp
16:00 17:00 1.00 B Prototyp
18:00 22:00 4.00 B Prototyp
Di 02.06.15 15:00 16:00 1.00 B Prototyp
Mi 03.06.15 09:30 14:45 5.25 B Prototyp
14:45 15:10 0.42 A Cave integration Robert Hauck: Config, Applikation
19:30 22:00 2.50 B Prototyp
Do 04.06.15 08:30 13:00 4.50 B Prototyp
17:00 00:00 7.00 B Prototyp
00:00 02:00 2.00 B Prototyp
Fr 05.06.15 11:00 14:30 3.50 B Präsentation
15:00 15:20 0.33 B Vortrag Präsentation
17:00 19:00 2.00 B Bericht
Sa 06.06.15 14:00 18:00 4.00 B Bericht
22:00 23:00 1.00 B Bericht
So 07.06.15 0.00
Mo 08.06.15 0.00
Di 09.06.15 20:00 22:00 2.00 B Bericht
Mi 10.06.15 11:00 11:30 0.50 A Besprechung Bericht
Do 11.06.15 21:00 22:30 1.50 B Bericht
Fr 12.06.15 09:00 12:00 3.00 B Bericht
14:30 00:00 9.50 B Abgabetermin Bericht
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 26
B. Materialien
B.1. E-Mail Luggen
B.2. E-Mail Blatter
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 27
Selbst¨andigkeitserkl¨arung
Ich best¨atige, dass ich die vorliegende Arbeit selbstst¨andig und ohne Benutzung anderer als der im Literaturver-
zeichnis angegebenen Quellen und Hilfsmittel angefertigt habe. S¨amtliche Textstellen, die nicht von mir stammen,
sind als Zitate gekennzeichnet und mit dem genauen Hinweis auf ihre Herkunft versehen.
Ort, Datum: Biel/Bienne, 13. Juni 2015
Vorname, Name: Roland Bruggmann
Unterschrift: ......................................
OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 28

Weitere ähnliche Inhalte

Ähnlich wie OSG Volume Rendering

Bachelor%20thesis%20Willi%20Tscheschner
Bachelor%20thesis%20Willi%20TscheschnerBachelor%20thesis%20Willi%20Tscheschner
Bachelor%20thesis%20Willi%20Tscheschnertutorialsruby
 
Bachelor%20thesis%20Willi%20Tscheschner
Bachelor%20thesis%20Willi%20TscheschnerBachelor%20thesis%20Willi%20Tscheschner
Bachelor%20thesis%20Willi%20Tscheschnertutorialsruby
 
User-centered Design für Telemedizin-App
User-centered Design für Telemedizin-AppUser-centered Design für Telemedizin-App
User-centered Design für Telemedizin-AppRoland Bruggmann
 
Large Scale Multilayer Perceptron
Large Scale Multilayer PerceptronLarge Scale Multilayer Perceptron
Large Scale Multilayer PerceptronSascha Jonas
 
Numerische Methoden: Approximation und Integration
Numerische Methoden: Approximation und IntegrationNumerische Methoden: Approximation und Integration
Numerische Methoden: Approximation und IntegrationRoland Bruggmann
 
Bachelorarbeit paul gerber.pdf
Bachelorarbeit paul gerber.pdfBachelorarbeit paul gerber.pdf
Bachelorarbeit paul gerber.pdfwissem hammouda
 
Manual kalypso risk_de_v2.0.1
Manual kalypso risk_de_v2.0.1Manual kalypso risk_de_v2.0.1
Manual kalypso risk_de_v2.0.1Murtuja Alam
 
Algorithmen und Applikationen zur interaktiven Visualisierung und Analyse ch...
Algorithmen und Applikationen zur interaktiven  Visualisierung und Analyse ch...Algorithmen und Applikationen zur interaktiven  Visualisierung und Analyse ch...
Algorithmen und Applikationen zur interaktiven Visualisierung und Analyse ch...Frank Oellien
 
Modulhandbuch 2008
Modulhandbuch 2008Modulhandbuch 2008
Modulhandbuch 2008guest995aa7
 

Ähnlich wie OSG Volume Rendering (20)

Bachelor%20thesis%20Willi%20Tscheschner
Bachelor%20thesis%20Willi%20TscheschnerBachelor%20thesis%20Willi%20Tscheschner
Bachelor%20thesis%20Willi%20Tscheschner
 
Bachelor%20thesis%20Willi%20Tscheschner
Bachelor%20thesis%20Willi%20TscheschnerBachelor%20thesis%20Willi%20Tscheschner
Bachelor%20thesis%20Willi%20Tscheschner
 
User-centered Design für Telemedizin-App
User-centered Design für Telemedizin-AppUser-centered Design für Telemedizin-App
User-centered Design für Telemedizin-App
 
Large Scale Multilayer Perceptron
Large Scale Multilayer PerceptronLarge Scale Multilayer Perceptron
Large Scale Multilayer Perceptron
 
Dsvdoc
DsvdocDsvdoc
Dsvdoc
 
Dsvdoc
DsvdocDsvdoc
Dsvdoc
 
Dsvdoc
DsvdocDsvdoc
Dsvdoc
 
Dsvdoc
DsvdocDsvdoc
Dsvdoc
 
Da Hanno Rabe
Da Hanno RabeDa Hanno Rabe
Da Hanno Rabe
 
Numerische Methoden: Approximation und Integration
Numerische Methoden: Approximation und IntegrationNumerische Methoden: Approximation und Integration
Numerische Methoden: Approximation und Integration
 
Abschlussbericht des Projekts Viprof
Abschlussbericht des Projekts ViprofAbschlussbericht des Projekts Viprof
Abschlussbericht des Projekts Viprof
 
Bachelorarbeit paul gerber.pdf
Bachelorarbeit paul gerber.pdfBachelorarbeit paul gerber.pdf
Bachelorarbeit paul gerber.pdf
 
Dsvdoc
DsvdocDsvdoc
Dsvdoc
 
Dsvdoc
DsvdocDsvdoc
Dsvdoc
 
Dsvdoc
DsvdocDsvdoc
Dsvdoc
 
Dsvdoc
DsvdocDsvdoc
Dsvdoc
 
Mocek Thesis
Mocek ThesisMocek Thesis
Mocek Thesis
 
Manual kalypso risk_de_v2.0.1
Manual kalypso risk_de_v2.0.1Manual kalypso risk_de_v2.0.1
Manual kalypso risk_de_v2.0.1
 
Algorithmen und Applikationen zur interaktiven Visualisierung und Analyse ch...
Algorithmen und Applikationen zur interaktiven  Visualisierung und Analyse ch...Algorithmen und Applikationen zur interaktiven  Visualisierung und Analyse ch...
Algorithmen und Applikationen zur interaktiven Visualisierung und Analyse ch...
 
Modulhandbuch 2008
Modulhandbuch 2008Modulhandbuch 2008
Modulhandbuch 2008
 

Mehr von Roland Bruggmann

Fingerprint Analysis – Preprocessing and Feature Extraction
Fingerprint Analysis – Preprocessing and Feature ExtractionFingerprint Analysis – Preprocessing and Feature Extraction
Fingerprint Analysis – Preprocessing and Feature ExtractionRoland Bruggmann
 
Unreal Engine IoT Project: Heartbeat
Unreal Engine IoT Project: HeartbeatUnreal Engine IoT Project: Heartbeat
Unreal Engine IoT Project: HeartbeatRoland Bruggmann
 
3D Content for Dream-like VR
3D Content for Dream-like VR3D Content for Dream-like VR
3D Content for Dream-like VRRoland Bruggmann
 
Swiss National Supercomputing Centre CSCS
Swiss National Supercomputing Centre CSCSSwiss National Supercomputing Centre CSCS
Swiss National Supercomputing Centre CSCSRoland Bruggmann
 
Multicore and GPU Programming
Multicore and GPU ProgrammingMulticore and GPU Programming
Multicore and GPU ProgrammingRoland Bruggmann
 
TOGAF Architecture Content Framework
TOGAF Architecture Content FrameworkTOGAF Architecture Content Framework
TOGAF Architecture Content FrameworkRoland Bruggmann
 
Hinderniserkennung mit LiDAR
Hinderniserkennung mit LiDARHinderniserkennung mit LiDAR
Hinderniserkennung mit LiDARRoland Bruggmann
 
TOGAF Architecture Content Framework
TOGAF Architecture Content FrameworkTOGAF Architecture Content Framework
TOGAF Architecture Content FrameworkRoland Bruggmann
 

Mehr von Roland Bruggmann (15)

Fingerprint Analysis – Preprocessing and Feature Extraction
Fingerprint Analysis – Preprocessing and Feature ExtractionFingerprint Analysis – Preprocessing and Feature Extraction
Fingerprint Analysis – Preprocessing and Feature Extraction
 
Unreal Engine IoT Project: Heartbeat
Unreal Engine IoT Project: HeartbeatUnreal Engine IoT Project: Heartbeat
Unreal Engine IoT Project: Heartbeat
 
3D Content for Dream-like VR
3D Content for Dream-like VR3D Content for Dream-like VR
3D Content for Dream-like VR
 
Swiss National Supercomputing Centre CSCS
Swiss National Supercomputing Centre CSCSSwiss National Supercomputing Centre CSCS
Swiss National Supercomputing Centre CSCS
 
Sprechen als Handeln
Sprechen als HandelnSprechen als Handeln
Sprechen als Handeln
 
Multicore and GPU Programming
Multicore and GPU ProgrammingMulticore and GPU Programming
Multicore and GPU Programming
 
Quadriken im Raum
Quadriken im RaumQuadriken im Raum
Quadriken im Raum
 
Ondes stationnaires
Ondes stationnairesOndes stationnaires
Ondes stationnaires
 
Passwords Safe
Passwords SafePasswords Safe
Passwords Safe
 
Stehende Wellen
Stehende WellenStehende Wellen
Stehende Wellen
 
TOGAF Architecture Content Framework
TOGAF Architecture Content FrameworkTOGAF Architecture Content Framework
TOGAF Architecture Content Framework
 
Cultural Dimensions
Cultural DimensionsCultural Dimensions
Cultural Dimensions
 
Hinderniserkennung mit LiDAR
Hinderniserkennung mit LiDARHinderniserkennung mit LiDAR
Hinderniserkennung mit LiDAR
 
Quadriken im Raum
Quadriken im RaumQuadriken im Raum
Quadriken im Raum
 
TOGAF Architecture Content Framework
TOGAF Architecture Content FrameworkTOGAF Architecture Content Framework
TOGAF Architecture Content Framework
 

OSG Volume Rendering

  • 1. Das cpvrLab am Institute for Human Centered Engineering HuCE hat ein Cave Automatic Virtual Environment (CAVE) in Betrieb. Das verwendete Rendering-Framework basiert u.a. auf der Bibliothek OpenSceneGraph (OSG). Der Szenengraph soll um einen Knoten erweitert werden, der das Rendern grosser Volumengrafiken in Echtzeit erm¨oglicht. Technologien: OSG, Equalizer, C/C++, OpenGL, GLSL Fachgebiet: Informatik, Modul BTI7302 Projekt 2, Vertiefung in CPVR Autor: Roland E. Bruggmann, roland.bruggmann@students.bfh.ch Betreuer: Prof. Urs K¨unzler, urs.kuenzler@bfh.ch Datum: 13. Juni 2015 Berner Fachhochschule | Haute ´ecole sp´ecialis´ee bernoise | Bern University of Applied Sciences OSG Volume Rendering Szenengraph-Knoten f¨ur das Echtzeit-Rendern von Volumengrafiken aus grossen Datens¨atzen Semesterarbeit
  • 2. Versionen Version Datum Status Bemerkungen 0.1 18. Februar 2015 Entwurf Kick-Off Meeting: Arbeitstitel, Abk¨urzungen, Glossar, Verzeichnisse 0.2 20. Mai 2015 Entwurf Disposition: Inhaltsverzeichnis 0.3 06. Juni 2015 Review Grundlagen, Konzept, Umsetzung, Schlussfolgerungen, Zusammenfassung 1.0 12. Juni 2015 Reinfassung Schlussredaktion 1.1 13. Juni 2015 Reinfassung Korrekturen, Erg¨anzungen Zusammenfassung Das cpvrLab am Institute for Human Centered Engineering HuCE hat ein Cave Automatic Virtual Environment (CAVE) in Betrieb. Das verwendete Rendering-Framework Immersive 3D (I3D) basiert u.a. auf den Bibliotheken Equalizer und OpenSceneGraph (OSG). Der Szenengraph soll nun um einen Knoten erweitert werden, der das performante Rendern grosser Volumengrafiken in Echtzeit erm¨oglicht. Dazu sollen die Grundlagen zum Thema Realtime Volume Rendering sowie das Know-how zum Haptic CAVE System und den darin eingesetzten Technologien I3D, Equalizer und OSG erarbeitet werden. Schliesslich soll der Prototyp eines Volume-Renderers einen ersten Testlauf im CAVE bestehen. F¨ur die Implementation im Zuge der Bachelorarbeit wird der Volume Rendering-Node von OpenSceneGraph (OSG) verwendet werden. OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 i
  • 3. Inhaltsverzeichnis Zusammenfassung i 1. Einleitung 1 1.1. Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. ¨Ubersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2. Grundlagen 2 2.1. Volume Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.1.1. Raycasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.2. Big Volume Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2. Cave Automatic Virtual Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.1. Parallel Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3. Prototyp 10 3.1. Konzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1.1. Prim¨are Prototypanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1.2. Erg¨anzende Prototypanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1.3. Dom¨anenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2. Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4. Resultate 12 4.1. Evaluation UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.2. Transferfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.3. Big Volume Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.4. CAVE-Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5. Schlussfolgerungen und Ausblick 14 Abk¨urzungen 16 Glossar 17 Literaturverzeichnis 20 Bildnachweis 21 Abbildungsverzeichnis 22 A. Arbeitsorganisation 23 A.1. Projektbeschrieb und Pr¨asentationsdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 A.2. Zeitplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 A.3. Arbeitsjournal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 B. Materialien 27 B.1. E-Mail Luggen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 B.2. E-Mail Blatter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 ii
  • 4. 1. Einleitung F¨ur die ¨arztliche Diagnostik und Therapie kommen heutzutage computergest¨utzte Verfahren zur Anwendung. Me- dizinische Bilddaten werden dabei u.a. per Computertomograph (CT) oder Magnetic Resonance Imaging (MRI) aquiriert und in einer Bildanalyse aufbereitet. Die resultierenden Daten k¨onnen schliesslich als Volumengrafik vi- sualisiert werden. Diese sind nicht zuletzt dienlich zur Wissensbildung und k¨onnen auch zu Schulungszwecken Verwendung finden. Dazu betreibt das cpvrLab am Institute for Human Centered Engineering HuCE der BFH-TI ein Cave Automatic Virtual Environment (CAVE). Das CAVE verf¨ugt ¨uber eine haptische Erweiterung1 und wurde bereits als Umgebung zur Schulung und ¨Ubung von medizinischen Workflows im OP eingesetzt2 . Mit der M¨oglich- keit, medizinische Bilddaten als Volumengrafik in die Szenerie einzubinden, kann die virtuelle Trainingsumgebung massgebend erweitert werden. 1.1. Problemstellung Das Rendering-Framework Immersive 3D (I3D) f¨ur das cpvrLab eigene Haptic CAVE System basiert auf den Bi- bliotheken Equalizer und OpenSceneGraph (OSG). Der Szenengraph soll um einen Knoten erweitert werden, der das Echtzeit-Rendern grosser Datens¨atze als Volumengrafik erm¨oglicht. Das Rendern soll mit der OpenGL Shading Language (GLSL) implementiert und somit auf der Graphic Processing Unit (GPU) ausgef¨uhrt werden. Das Modul ” Projekt 2”dient als Vorbereitung auf die Bachelorarbeit in den Folgesemestern. Ziel dieser Semester- arbeit soll deshalb das Erarbeiten der Grundlagen zum Thema Realtime Volume Rendering sein. Ebenso soll das Know-how zum Haptic CAVE System sowie den darin eingesetzten Technologien I3D, Equalizer und OSG angeeig- net werden. Das Setup der Toolchain (Softwareentwicklungsumgebung, Bibliotheken etc.) soll vollzogen werden. Schliesslich soll der Prototyp einer Applikation unter Verwendung von OSG implementiert werden. Die Applikation soll einen ersten Test im CAVE durchlaufen. 1.2. ¨Ubersicht Der vorliegende Bericht ist in f¨unf Kapitel geteilt: Auf diese Einleitung folgt eine Erl¨auterung der Grundlagen (Ka- pitel 2). Im Anschluss wird das Konzept und die Umsetzung des Prototypen vorgestellt (Kapitel 3), danach werden die Resultate diskutiert (Kapitel 4). In den Schlussfolgerungen werden die wichtigsten Ergebnisse rekapituliert und hinsichtlich der Ausgangslage reflektiert (Kapitel 5). Im Anhang zu finden sind die Arbeitsorganisation enthaltend die Modulbeschreibung, den Projektbeschrieb, die Pr¨asentationsdaten, die Bewertungskriterien, ein Zeitplan sowie ein Arbeitsjournal (Anhang A) sowie Materialien (Anhang B). 1Del Piero, Michel und Weber, Claudia (2011): Haptik f¨ur den CAVE – V-Touch Library. cpvrLab, Institute for Human Centered Engineering HuCE, BFH-TI Biel/Bienne. 2Urs K¨unzler u.a.: HOVISSE – Haptic Osteosynthesis Virtual Intra-operative Surgery Support Environment. Springer Berlin Heidelberg: 2009. DOI: 10.1007978-3-642-00437-7 8. Online: https://www.cpvrlab.ti.bfh.ch/research/projects/hovisse/. OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 1
  • 5. 2. Grundlagen In diesen Grundlagen wird mit dem Raycasting eine g¨angige Methode des Volume Rendering erl¨autert. Im Anschluss wird die Funktionsweise des Haptic CAVE System und das Parallel Rendering mit Equalizer vorgestellt. 2.1. Volume Rendering Anschauliche Visualisierungen spielen in Bildung und Forschung generell eine wichtige Rolle. Eine spezeille Art der computergest¨utzten Visualisierung ist das Volume Rendering. Die Technologie hat ihren Ursprung in der medizini- schen Bildverarbeitung und findet zunehmend auch in anderen Bereichen Anwendung, so in den Materialwissen- schaften f¨ur die digitale Modellierung von Werkstoffen (vgl. [Joh+06, S. 20]), f¨ur wissenschaftliche Visualisierungen in Disziplinen wie Physik, Klimatologie, Arch¨aologie oder Anatomie (siehe Abbildung 2.1, v.l.n.r, v.o.n.u.), aber auch in Computer-Spielen und den visuellen K¨unsten. Abbildung 2.1.: Wissenschaftliche Visualisierungen mit Volume Rendering Bei Verwendung der Technologie in der medizinischen Bildverarbeitung werden Daten per CT, MRI oder anderen bildgebenden Verfahren aquiriert. Mit den Ger¨aten k¨onnen zahlreiche Schnittbilder des menschlichen K¨orpers erstellt und als DICOM1 -Dateien gespeichert werden (Namenerweiterung *.dcm). Der Bilderstapel wird schliesslich zu einer r¨aumlich ausgedehnten Volumengrafik synthetisiert – heutzutage in Echtzeit. Im Gegensatz zu indirekten Rendering-Methoden wie z.B. f¨ur Isosurfaces, bei denen die Oberfl¨ache mit einem Pre- Prozess extrahiert wird, berechnen direkte Methoden die Voxel-Daten mit einem optischen Modell. Dabei k¨onnen Emission, Reflektion, Streuung, Absorption und Verdeckung von Licht ber¨ucksichtigt werden. Gem¨ass Rezk-Salama u. a. [RTVG06, S. 8] wird f¨ur das Direct Volume Rendering (DVR) meistens ein Emissions-Absorptions-Modell verwendet, so auch beim Raycasting. Dabei werden Streuung und indirekte Beleuchtung ignoriert, womit ein guter Kompromiss zwischen Qualit¨at der Volumengrafik und Effizienz der Berechnung gemacht wird. 1DICOM – Digital Imaging and Communications in Medicine. URL: http://dicom.nema.org/ (besucht am 28. Mai 2015). OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 2
  • 6. 2.1.1. Raycasting Beim Texture Slicing (object-order) wird die das Schneiden des Volumen mit der Sichtebene auf der CPU berechnet, lediglich die 3D-Textur und die Transferfunktion wir auf der GPU ausgef¨uhrt. Beim Raycasting hingegen wird ein Image-Order-Ansatz verfolgt: Die CPU l¨adt den Fragment-Shader auf die Grafikkarte, die Berechnungen wie Raycasting und Texturen-Lookup erfolgt auf der GPU (siehe Abbildung 2.2). Abbildung 2.2.: Texture slicing vs. Raycasting Die Rendering Pipeline f¨ur das Raycasting kann in vier Schritte geteilt werden: Rekonstruktion (’Sampling’), Klas- sifikation, Shading und Compositing. Ray setup Das Setup geht von einem prozeduralen Schnitt von Sichtstrahl und W¨urfel aus (siehe Abbildung 2.3). Dabei erfolgt eine Rasterisierung der Bounding Box mit dem Sichtstrahl als Fragment. Dazu muss die Start-Position des Sichtstrahls und Position des Austritts aus der Bounding Box bekannt sein – oder es wird wiederholt getestet, ob das Ende der Bounding Box schon erreicht ist. Ein anderer Ansatz kennt die Start-Position und den Richtungsvektor des Sichtstrahls. Abbildung 2.3.: Ray setup Die folgenden Schritte erfolgen als Schleife ¨uber alle Sichtstrahlen (Loop over Ray). Rekonstruktion Zur Rekonstrukton der 3D-Daten werden die Datens¨atze traversiert und ihre Werte interpoliert. Beim sogenannten Sampling werden die Skalarwerte I(s) berechnet: Die Rendering-Gleichung von Kajiya [Kaj86, S. 1] kann auf das OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 3
  • 7. Emissions-Absorptions-Modell adaptiert werden. Mit einfallendem Licht I(s0), Emissionsquelle q und Absorptions- koeffizient K wird das Volume Rendering als Integral entlang des Lichtflusses beginnend bei Punkt s0 bis zum Endpunkt s formuliert (siehe Abbildung 2.4 und Gleichung 2.1). Abbildung 2.4.: Sichtstrahl mit dem Emissions-Absorptions-Modell I(s) = I(s0)e− s s0 K(s)ds + s s0 q(˜s)e− s ˜s K(s)ds d˜s (2.1) Klassifikation Bei der Klassifikation werden die Grauwerte der Voxel koloriert. Mit einer Transferfunktion wird einem Grauwert ein Farbwert zugewiesen, womit das farbliche Aussehen der Volumengrafik festgelegt und damit eine differentierte Lesbarkeit erreicht wird (siehe Abbildungen 2.5 und 2.6). Nebst dem simplen Zuweisen eines Fabrwertes mittels Lookup Table (LUT) kann auch ein 1D Histogramm oder ein 2D Scatterplot zur Anwendung kommen. Abbildung 2.5.: Klassifikation mit einer Transferfunktion Abbildung 2.6.: Voxel in Graustufen und koloriert Shading Das Shading ist wichtig f¨ur das Erkennen von Rauheiten einer Oberfl¨ache. Zur Anwendung kann ein lokales Be- leuchtungsmodell kommen, z.B. ein Phong-Shading, bei der die Summe von ambient-, diffus- und spekul¨ar-Licht berechnet wird. OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 4
  • 8. Compositing Das Volume Rendering-Integral wird mit einer Riemannsumme approximiert (siehe [RTVG06, S. 10 f.]). Mit C (color) als Farbe des aktuellen Sampling-Punktes und T als dessen Transparenz sowie n als maximale Anzahl von Sampling-Punkten gestaltet sich das diskrete Volume Rendering-Integral wie folgt (siehe Gleichung 2.2): I(s) = n i=0 Ci n j=i+1 Tj (2.2) mit Ci ≈ q(si )∆x Tj ≈ e−K(sj )∆x ∆x = s−s0 n Diese diskretisierte Formel mit A als Absorption kann f¨ur numerische Berechnungen mit einer Maschine verwendet werden. Dabei k¨onnen zwei Arten der Berechnung zum Zuge kommen: Back-to-front compositing (Iteration mit Start bei i = 0 (back) nach i = max (front): i w¨achst): Ci = Ci + (1 − Ai ) × Ci−1 oder aber das Front-to-back compositing (Iteration mit Start bei i = max (front) nach i = 0 (back): i wird kleiner): Ci = Ci+1 + (1 − Ai+1) × Ci Ai = Ai+1 + (1 − Ai+1) × Ai Eine Optimierung der Berechnung ist die ’early ray termination’: Die Berechnung f¨ur den front-to-back-Strahl kann beendet werden, sobald die Absorption Ai+1 ≈ 1 wird. Eine weitere Optimierung kann durch das sowie das ’empty space skipping’ (auch ’empty space leaping’) erreicht werden. Dabei werden vollst¨andig transparente Voxel ausgelassen. OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 5
  • 9. 2.1.2. Big Volume Data Bei Big Volume Data (auch ’Large Volume Data’ oder ’Large Dataset for Volume-Rendering’) handelt es sich um grosse Datenmengen, die u.U. als Ganzes im Speicherbereich der Graphikkarte keinen Platz finden (vgl. [Mak12, S. 73]). Dabei kann es sich um hochaufgel¨oste Daten eines Micro-CT handeln, aber auch um den Output einer physikalischen Simulation. Dieselbe Herausforderung findet sich skaliert auch auf einem mobilen Ger¨at mit geringen Ressourcen wieder. Eine Methode f¨ur das Handling grosser Daten ist das Rendern von verschiedenen Level of Detail (LOD) ( vgl. [AS12, S. 481 f.]). Dabei kann die maximale Aufl¨osung des Systemes ber¨ucksichtigt werden, Subpixel-Gr¨ossen m¨ussen nicht gerendert werden. Beim Bricking erfolgt die Diskretisierung des 3D-Raumes durch die rekursive Zerlegung des Raumes in W¨urfel (siehe [AS12, S. 489 ff.] und [RTVG06, S. 446 f.]). Diese wird mit der Datenstruktur Octree modelliert, auch N3 -Tree genannt (siehe Abbildung 2.7). Abbildung 2.7.: Bricking des Raumes und Modellierung als Octree Der OSG-Namespace osgVolume kann f¨ur Big Volume Data verwendet werden, er enth¨alt bereits eine Methode zum Rendern der LOD mit einem Tiling. Ein Bricking w¨are noch zu implementieren. Grosse Datens¨atze k¨onnten zudem in einem Pre-Prozess Komprimiert und zur Laufzeit auf die Grafikkarte gesendet werden, wo die Daten dekomprimiert und rekonstruiert werden (siehe [RTVG06, S. 451 ff.]). Dazu gibt es diverse Methoden unter Anwendung verschiedener Algorithmen wie Fast Fourier Transformation (FFT), Wavelets o.a. Eine weitere M¨oglichkeit das Rendern zu beschleunigen w¨are eine Implementation parallelen Rechnens mit der Open Computing Library (OpenCL) oder unter Verwendung der C-Bibliothek f¨ur die Compute Unified Device Architecture (CUDA) von NVIDIA. Zu den Themen Datenkompression und Beschleunigung wurde eine Recherche durchgef¨urt, diese resultierte in mehreren Publikationen – folgende zwei sollen hier Erw¨ahnung finden: ˆ Marcos Balsa Rodriguez, Enrico Gobbetti, Jos´e Antonio Iglesias Guiti´an, Maxim Makhinya, Fabio Marton, Renato Pajarola und Susanne Suter: State-of-the-art in Compressed GPU-Based Direct Volume Rendering. Computer Graphics Forum, 33(6): 77-100, September 2014. ˆ David B. Kirk, Wen-mei W. Hwu: Application Case Study: Advanced MRI Reconstruction. In: Programming Massively Parallel Processors. A Hands-on Approach. Burlington: Elsevier Inc., 2010. Kap. 8. ISBN: 978-0- 12-381472-2. Erstere Publikation kann zur ¨Ubersicht dienen und enth¨alt ein ausf¨uhrliches Literaturverzeichnis, letztere befasst sich mit dem parallelen Programmieren unter Verwendung von CUDA. OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 6
  • 10. 2.2. Cave Automatic Virtual Environment Ein Cave Automatic Virtual Environment (CAVE; engl. cave: H¨ohle) ist ein Raum, in den eine 3D-Welt projiziert wird. Das Haptic CAVE System im cpvrLab des HuCE z¨ahlt zu den physisch immersiven virtuellen Umgebungen und misst 2.5 m×2.5 m×2.0 m (vgl. [CPVR11a]). Als Projektionsfl¨achen dienen drei W¨ande und der Boden (siehe Abbildung 2.8). Abbildung 2.8.: R¨aumliche Anordnung des Haptic CAVE System Die Visualisierung (vgl. [CPVR11b]) erfolgt ¨uber vier Gruppen `a je zwei Projektoren, welche eine Leinwand resp. den Boden mit einem stereoskopischen Bild bescheinen (siehe Abbildung 2.9). Mit linear polarisierenden Filtern auf den Projektoren (±45 °) und mit polarisierten Brillen wird ein 3D-Effekt als Passiv-Stereo erzeugt (siehe Abbil- dung 2.10). Abbildung 2.9.: Komposition zweier Projektoren zum Bescheinen einer Wand Abbildung 2.10.: Schema eines 45 °-Polarisationsfilters und 3D-Brille OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 7
  • 11. Jeder der acht Projektoren wird von einer dedizierten Renderstation angesteuert. Auf den Stationen kommt das Framework I3D zum Einsatz – eine Entwicklung des cpvrLab (siehe [CPVR11c]). Die Aufl¨osung der Hardware betr¨agt 1400 × 1050 Pixel (SXGA+, aspect ratio 4 : 3), jene der Software 1280 × 1024 Pixel (SXGA, aspect ratio 5 : 4) – es werden also ca. 1.3 Mio Bildpunkte projiziert (siehe Abbildung 2.11). Abbildung 2.11.: Anordnung der Projektoren f¨ur die Stereobildwiedergabe und erreichte Aufl¨osungen 2.2.1. Parallel Rendering In virtuellen Umgebungen sollten gem¨ass Fujimoto [Fuj00, S. 28] Simulation time und Wallclock time synchron sein, andernfalls wirkt die simulierte Umgebung unrealistisch. Ein stockender Fluss der Signale oder eine nicht synchronisierte Daten¨ubertragung l¨asst das Bewusstsein einer teilnehmenden Person sofort auf das technische System der Signal¨ubertragung fokussieren, sei es nun Bild, Ton oder Haptik: Das Wahrnehmungsfeld wird um die Metaebene der verwendeten Technologie erweitert – der Zustand der Immersion ist verloren. Oder in der Termiologie von Platons H¨ohlengleichnis: Das Publikum betrachtet nicht mehr nur die Schatten an der Wand, sondern auch die Figuren auf dem Sims und die Fackel im Raum. Um das Eintauchen in die Szenerie zu erhalten, sollte deshalb eine Bildwiederholungsrate von mindestens 60 Frames per Second (FPS) gew¨ahrleistet sein, gerade bei physisch immersiven Umgebungen (vgl. [SSC01, S. 15 ff.]). Den Anforderungen entsprechend kommen f¨ur das Volume Rendering in Echtzeit m¨oglichst leistungsstarke Computergrafik-Systeme zum Einsatz mit Methoden wie dem Parallel Rendering, ein nebenl¨aufiges Synthetisieren der Szene. Dabei befindet sich ein System paralleler Computer im selben Maschinenraum oder Kabinet, weist homogene Prozessoren auf und kommuniziert ¨uber ein Netzwerk mit einer Latenzzeit von weniger als 100 µs (siehe [Fuj00, S. 17]). Die Renderstationen k¨onnen laut Makhinya [Mak12, S. 3 f.] handels¨ubliche PCs mit leistungsstarken Grafikkarten sein. Jede Station rendert einen Teil der gesamten Szene. Die synthetisierten Bilddaten werden schliesslich synchronisiert an die Displays gesendet. Die Methode kommt z.B. bei Power walls zur Anwendung (siehe Abbildung 2.12) – oder aber in einem CAVE. Abbildung 2.12.: Power wall mit 2 × 3 Displays Die acht Renderstationen des Haptic CAVE System im cpvrLab verf¨ugen ¨uber Intel 7i CPUs und sind mit Grafikkar- OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 8
  • 12. ten vom Typ ASUS ENGTX400 best¨uckt (PCI Express 2.0, NVIDIA GeForce GTX 4802 , 1536 MB GDDR5 Memory, siehe E-Mail im Anhang B.1). Das Framework I3D beinhaltet u.a. den Szenengraph OSG und die Software Equali- zer3 f¨ur das Parallel Rendering (vgl. [Hau15, S. 7]). Die Cluster-Rendering Software Equalizer ist eine Entwicklung des Institutes f¨ur Informatik an der Universit¨at Z¨urich und des cpvrLab am HuCE der Berner Fachhochschule in Biel/Bienne. Kommerziellen Support bietet die Firma Eyescale Software GmbH456 mit Sitz in Neuchˆatel. Eilemann, Makhinya und Pajarola [EMP09, S. 1] beschreiben Equalizer als Client/Server konzipierte L¨osung. Die Software managt das Parallel Rendering mit dem OpenGL Multipipe SDK (MPK) als Multi-Pipeline Rendering (siehe Ab- bildung 2.13): In der Konfiguration des Equalizer Servers (Config) auf dem Server Node (vgl. [Mak12, S. 22]) k¨onnen Render- stationen festlegt werden (CPUs resp. Nodes). Einem solchen Node kann eine oder mehrere Pipeline (GPU resp. Pipe) zugewiesen werden. Eine Pipe rendert ein Fenster (Window), das einen oder mehrere Kan¨ale (Channels) mit Bilddaten beliefert. So kann z.B. eine Renderstation Bilddaten f¨ur mehrere Kan¨ale synthetisieren, welche jeder f¨ur sich wenig Rechenleistung beansprucht (vgl. [EMP09, S. 4]). Abbildung 2.13.: Schema einer Konfiguration von Equalizer f¨ur ein CAVE Im Haptic CAVE System des cpvrLab ist Equalizer f¨ur zwei verschiedene Betriebsmodi konfiguriert (vgl. [Hau15]): Im ’single Mode’ wird lediglich eine eine Wand beschienen, womit zwei Projektoren und zwei Renderstation in Betrieb sind. Im ’parallel Mode’ werden acht Renderstationen je einem Projektor zugeteilt, die Stereobildwiedergabe f¨ur das gesamte CAVE ist aktiviert. 2GeForce GTX 480. In: Website Geforce, NVIDIA Corporation 2015. URL: http://www.geforce.com/hardware/desktop-gpus/ geforce-gtx-480 (besucht am ). 3Equalizer Community. URL: http://www.equalizergraphics.com/ (besucht am 6. Februar 2015). 4Website der Firma Eyescale Software GmbH. URL: http://www.eyescale.ch/ (besucht am 30. Mai 2015). 5Equalizer auf github, URL: https://github.com/Eyescale/Equalizer (besucht am 30. Mai 2015). 6Binary von Equalizer als Ubuntu-Paket im Repository von Stefan Eilemann auf launchpad. URL: https://launchpad.net/ ~eilemann/+archive/ubuntu/equalizer (besucht am 30. Mai 2015). OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 9
  • 13. 3. Prototyp Als Konzept des Prototypen werden die Problemstellung und sonstige Anforderungen erfasst. In den erg¨anzenden Anforderungen ist n¨aheres zum Setup gelistet. Die Dom¨anen werden grafisch modelliert. Im Anschluss wird die Umsetzung vorgestellt. 3.1. Konzept 3.1.1. Prim¨are Prototypanforderungen Problemstellung: Es soll eine Applikation zur Visualisierung von Volumengrafiken als Prototyp Verwendung finden.1 Sonstige Anforderungen: ˆ Beim Start der Applikation soll ein Datensatz geladen und als Volumengrafik gerendert werden. ˆ Das Datensatz soll mit einer statischen Transferfunktion (TF) ¨uber eine LUT eingef¨arbt werden. ˆ ¨Uber ein User Interface (UI) soll die Volumengrafik mit Zoom, Pan und Rotation erkundet werden k¨onnen. 3.1.2. Erg¨anzende Prototypanforderungen ˆ Das NodeKit von OSG2 wird um einen Volume-Rendering-Knoten erweitert (’Framework’) und eine Appli- kation in C/C++ (’App’) unter Verwendung ebendieser Erweiterung implementiert. Als UI wird OsgVolume genutzt. Die Volumengrafik wird per GLSL3 auf der GPU gerendert. ˆ Generell wird mit der C++ Standard Template Library (STL)4 gearbeitet. F¨ur lineare Algebra auf der CPU kann die Template-Library Eigen5 benutzt werden, f¨ur weitere Funktionalit¨at k¨onnen Elemente aus Boost6 Verwendung finden. ˆ Der Quellcode erh¨alt Kommentare, mit Doxygen7 wird eine Dokumentation in HTML erstellt. Das Source Co- de Management (SCM) resp. die Versionsverwaltung erfolgt mit der Software git8 auf der Projektmanagement- Plattform des cpvrLab. ˆ Anleitungen: – Demonstrates OSG’s volume rendering capabilities . . . . OpenSceneGraph Wiki. – How to : Use OsgVolume with Volumetric Data. Digital Learning Foundation DLF. 1siehe auch: osgVolume. URL: http://trac.openscenegraph.org/projects/osg/wiki/Community/Tasks/osgVolume (abgerufen am 5. Juni 2015) 2OpenSceneGraph OSG. URL: http://www.openscenegraph.org/ (besucht am 3. M¨arz 2015). 3OpenGL Shading Language GLSL, URL: https://www.opengl.org/documentation/glsl/ (besucht am 15. M¨arz 2015). 4The C++ Standard Library STL, URL: http://www.stl.org/ (besucht am 3. M¨arz 2015). 5Eigen – C++ template library for linear algebra, URL: http://eigen.tuxfamily.org/ (besucht am 3. M¨arz 2015). 6Boost – peer-reviewed portable C++ source libraries, URL: http://www.boost.org/ (besucht am 3. M¨arz 2015). 7Doxygen documentation system, URL: http://www.doxygen.org/ (besucht am 3. M¨arz 2015). 8git – the stupid content tracker, URL: http://git-scm.com/ (besucht am 3. M¨arz 2015). OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 10
  • 14. 3.1.3. Dom¨anenmodell Dataset - e.g. *.dcm User Interface - Zoom - Pan - Rotate modify MV Visualizer Raycaster Volume Manager - Model-View-Matrix Renderer - Data - Render method (e.g. Raycaster) - Model-View-Matrix Order - object order - image order set Compositing - front-to-back - back-to-front set set read use send frame Image Reader - e.g. DCMTK, ITK/VTK request reading Transferfunction - CLUT - 1D Histogramm - 2D Scatterplot set Abbildung 3.1.: Dom¨anenmodell-Diagramm. Als Prototyp wird ein Volume Manager verwendet (siehe Abbildung 3.1). Der Volume Manager hat Zugriff auf einen Image Reader, welcher ein Dataset einlesen kann. Der Volume Manager sendet die eingelesenen Daten zum Renderer. Dem Renderer steht ein Raycaster und eine Transferfunktion zur Verf¨ugung. Damit werden die Daten zu einer Volumengrafik synthetisiert. Die berechneten Frames werden vom Renderer zum Visualizer gesendet. ¨Uber ein UI kann per Zoom, Pan und Rotation die Model-View-Matrize des Volume Managers ver¨andert werden. Der Volume Manager seinerseits aktualisiert die Model-View-Matrize auf dem Renderer. Die Elemente im Dom¨anenmodell haben ihre Entsprechung in folgenden Komponenten: Der Image Reader kann z.B. die Bibliothek Visualization Toolkit (VTK) sein, das Dataset kann z.B. ein DICOM- Datensatz im *.dcm-Format sein. Der Renderer findet seine Entsprechung in der Grafikkarte, der Raycaster und die Transferfunktion sind Fragment-Shader-Programme. Der Visualizer kann ein Display sein, oder dem Setup des Haptic CAVE System entsprechend ein Projektor. 3.2. Testing Im Verlaufe des Semesters sind f¨unf der acht Projektoren des Haptic CAVE System ausgestiegen und befanden sich zum Zeitpunkt des Testings in Reparatur – es war geplant, lediglich eine Wand zu bescheinen. Als Konfiguration von I3D resp. Equalizer w¨are demnach der ’single Mode’ gew¨ahlt worden (vgl. Abschnitt 2.2.1). Das Testing wurde jedoch auf dem Laptop des Autors durchgef¨uhrt.9 9ASUS G55JR, CPU: 2× Intel Quadcore i7, Grafikkarte: NVIDIA Geforce GTX 760M. OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 11
  • 15. 4. Resultate Es werden die Antworten zu den im Pflichtenheft verankerten Fragen betreffend Evaluation UI, Transferfunktion und Big Volume Data pr¨asentiert. Im Anschluss wird die CAVE-Integration ausgewertet. 4.1. Evaluation UI Obwohl Qt gebrauch sowohl von OpenGL als auch von OSG macht – es gibt die Namespaces QGl und QOsg – r¨at Makhinya [Mak12, S. 86] davon ab, Qt mit Equalizer einzusetzen (Stand 2012): ” Equalizer is already managing rendering loop, events handling and OpenGL context sharing, while QT framework has its own events processing loop, and straightforward integration causes overheads and OpengGL context conflicts. Solving these problems would require structural changes to the main rendering loop of Equalizer. Hopefully the framework will be extended to fully support QT soon, in the meantime less invasive approach to complete existing applications with a GUI was implemented.” Qt scheidet deshalb aus – da die Applikation im CAVE laufen soll, kann auf grafische Elemente im UI verzichtet werden. Die Bibliothek Nana oder das UI von OSG wird also Verwendung finden. Zwar ist Nana bis dato in einer Beta-Version erh¨altlich, bietet aber die ben¨otigten Grundfuntkonalit¨aten wie Pan und Zoom ¨uber Tastatur und Maus.1 Auch das UI von OSG ist noch in Entwicklung – der definitive Entscheid muss also zum Zeitpunkt der Umsetzung gef¨allt werden. 4.2. Transferfunktion Das finden einer geeigneten TF f¨ur die Stereobildwiedergabe mit Anaglyphen er¨ubrigt sich, da eine Stereobildwie- dergabe mit Anaglyphen nicht professionell genug ist, um tats¨achlich eine sinnvolle Anwendung zu finden. Die im Testing verwendete TF kann vom Benutzer nicht ver¨andert werden. Da die r¨aumliche Lesbarkeit einer Volumengrafik stark von der TF abh¨angt, k¨onnte bei der Bachelorarbeit z.B. eine multi-dimensionale TF mit Benutzerinteraktion implementiert werden. Folgende Publikationen enthalten weitergehende Informationen: ˆ [RTVG06, S. 249-274]: Chapter 10 Transfer-Function Reloaded. ˆ Stefan Roettger, Michael Bauer, Marc Stamminger: Spatialized Transfer Functions. Computer Graphics Group, University of Erlangen, Germany. In: K. W. Brodlie, D. J. Duke, K. I. Joy (Editors): EUROGRA- PHICS - IEEE VGTC Symposium on Visualization (2005). 4.3. Big Volume Data Als Datensatz wurde zu Beginn des Projektes vom cpvrLab ein micro-CT in Aussicht gestellt. Die Daten sind nach Aussagen des Betreuers jedoch nicht mehr auffindbar. Nach einem Gespr¨ach mit dem Kommilitone Sandro Blatter, seinerseits Fachperson f¨ur Medizinisch-technische Radiologie HF am Inselspital in Bern, wurde dem Autor des Berichtes der Informatikingenieur Martin Zbinden2 als Kontaktperson angegeben f¨ur eine eventuelle Bezugs- quelle von anonymisierten MRI-Patientenbilder (siehe E-Mail im Anhang B.2). Schliesslich wurde f¨ur die weitere Arbeit jedoch auf Daten von Roettger [VLIB] ( ” The Volume Library”) und Rosset [OSIRIX] ( ” OsiriX DICOM files”) zur¨uckgegriffen. 1nana C++ Library. URL: http://nanapro.org/en-us/ (besucht am 10. M¨arz 2015) 2siehe Martin Zbinden, Informatikingenieur. In: Universit¨atsinstitut f¨ur Diagnostische und Interventionelle Neuroradiologie, Inselspital Bern. URL: http://www.neurorad.insel.ch/de/ueber-uns/unser-team/, besucht am 12. Juni 2015. OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 12
  • 16. 4.4. CAVE-Integration Im Verlaufe des Semesters sind f¨unf der acht Projektoren des Haptic CAVE System ausgestiegen und befanden sich zum Zeitpunkt des Testings in Reparatur. Ein Testlauf wollte Robert Hauck nicht durchf¨uhren. Die Konfiguration von Equalizer f¨ur das CAVE konnte demnach durch den Autor nicht eingesehen werden. Wie Herr Hauck aber mitteilte, sei mit dem Verwenden von Equalizer und OSG gew¨ahrleistet, dass auch ein Volume gerendert werden k¨onne. OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 13
  • 17. 5. Schlussfolgerungen und Ausblick Das Einlesen in die Thematk des Volume Rendering und in die Technologien OSG, CAVE und Parallel Rendering ist erfolgt und die Grundlagen dazu sind verstanden. Eine Recherche zum Thema resultierte in einer Auswahl von rele- vanten Publikationen. Als Prototyp wurde die in OSG enthaltene Applikation osgVolume mit einer Transferfunktion getestet. Zwei Themenbereiche zur weiteren Vertiefung der Arbeiten haben sich herauskristallisiert: Zum einen ein speicher- optimiertes Handling der Volumendaten, zum anderen die Implementation einer benutzerinteraktiven Transferfunk- tion. Als UI kann sich hier die Bibliothek Nana eignen, oder aber jenes von OSG – beide befinden sich noch in aktiver Entwicklung. N¨aheres wird in der Projektdefinitionsphase der Bachelorarbeit festgelegt werden. Die Implementation eines Volume Managers f¨ur das Framework I3D k¨onnte mit einem Fassade-Pattern oder einer Wrapper-Klasse implementiert werden. Dabei kann die meiste Funktionalit¨at aus bestehenden Methoden ¨ubernom- men werden. Neue Methoden erweitern u.U. die Klassen mit Funktionalit¨at, eventuell werden bestehende Methoden ¨uberschrieben. F¨ur die Implementation im Zuge der Bachelorarbeit kann aber mit Bestimmheit gesagt werden, dass der im OSG-Namensraum osgVolume vorhandene Volume Rendering-Node Verwendung finden wird. OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 14
  • 18. OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 15
  • 19. Abk¨urzungen API Application Programming Interface BLAS Basic Linear Algebra Subroutines BUAS Bern University of Applied Sciences CAVE Cave Automatic Virtual Environment CG Computergrafik CPU Central Processing Unit CPVR Computer Perception and Virtual Reality CT Computertomograph CUDA Compute Unified Device Architecture DICOM Digital Imaging and Communications in Medicine DTI Diffusion Tensor Imaging DVR Direct Volume Rendering DW-MRI Diffusion Weighted Magnetic Resonance Imaging FBO Frame Buffer Object FDVR Frequency Domain Volume Rendering FEM Finite Element Method FFT Fast Fourier Transformation FPS Frames per Second FVR Fourier Volume Rendering GLSL OpenGL Shading Language GPU Graphic Processing Unit HuCE Institute for Human Centered Engineering I3D Immersive 3D LOD Level of Detail LUT Lookup Table MPK OpenGL Multipipe SDK MRI Magnetic Resonance Imaging MRT Magnetresonanztomograph OpenCL Open Computing Library OpenGL Open Graphics Library OSG OpenSceneGraph PBO Pixel Buffer Object PC Personal Computer OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 16
  • 20. PET Positronen-Emissions-Tomograph ROI Region of Interest SCM Source Code Management SDK Software Development Kit STL C++ Standard Template Library TF Transferfunktion UI User Interface VR Virtual Reality VTK Visualization Toolkit OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 17
  • 21. Glossar Anaglyphe Als Anaglyphe wird ein in Komplement¨arfarben etwas seitlich verschoben ¨ubereinander projiziertes Bild bezeichnet, das beim Betrachten durch eine Farbfilterbrille mit gleichen Komplement¨arfarben r¨aumlich erscheint. Siehe auch: Stereobildwiedergabe. Big Volume Data Bei Big Volume Data (auch ’Large Volumetric Dataset’ oder ’Large Dataset for Volume- Rendering’) handelt es sich um grosse Datenmengen, die als Ganzes im Speicherbereich der Graphikkarte keinen Platz finden. Dabei kann es sich um hochaufgel¨oste Daten eines Micro-CT handeln, aber auch um den Output z.B. einer physikalischen Simulation. Ethymologisch ist der Begriff dem ’buzzword’ Big Data angelehnt, eine g¨agnige Bezeichnung f¨ur grosse Datenmengen heterogener Herkunft und Thematik. Siehe auch: Computertomografie, Volume Rendering. Bildwiederholungsrate Die Bildwiederholungsrate (engl. Framerate) gibt die Anzahl der Frames pro Sekunde (FPS) in Hz an. Cave Automatic Virtual Environment Ein Cave Automatic Virtual Environment (CAVE) ist ein Raum, in den eine 3D-Umgebung projiziert wird. Das CAVE z¨ahlt zu den physisch immersiven virtuellen Umgebungen. Siehe auch: Immersion. Computertomografie Die Computertomografie (CT) ist ein bildgebendes Verfahren in der Nuklearmedizin. Dabei wird durch Schicht f¨ur Schicht erstellte Aufnahmen auch die Struktur der Weichteile eines K¨orpers sichtbar gemacht. Diffusions-Tensor-Bildgebung Die Diffusions-Tensor-Bildgebung (engl. Diffusion Tensor Imaging DTI, auch engl. Diffusion Tensor Magnetic Resonance Imaging DT-MRI) ist ein DW-MRI, welches zus¨atzlich die Richtungs- abh¨angigkeit der Diffusion aufzeichnet. Nebst dem Grauwert eines Voxels wird eine 3x3-Matrize errechnet – ein sog. Tensor, welcher das Diffusionsverhalten festh¨alt. Diese Methode generiert markant gr¨ossere Daten- mengen als ein MRI. Siehe auch: Magnetresonanztomografie, Diffusionsgewichtete Magnetresonanztomografie. Diffusionsgewichtete Magnetresonanztomografie Die Diffusionsgewichtete Magnetresonanztomografie (engl. Diffusion Weighted Magnetic Resonance Imaging DW-MRI) ist ein MRI, welches zus¨atzlich die r¨aumliche Diffusionsbewegung von Wassermolek¨ulen aufzeichnet. Dieses Verfahren erm¨oglichet z.B. die Darstellung der grossen Nervenfaserb¨undel des Gehirns. Dazu wird weder Kontrastmittel noch ionisierende Strahlung verwendet. Siehe auch: Magnetresonanztomografie, Diffusions-Tensor-Bildgebung. Digital Imaging and Communications in Medicine Digital Imaging and Communications in Medicine (DICOM, dt. Digitale Bildverarbeitung und -kommunikation in der Medizin) ist ein Standard zur Speicherung und zum Austausch medizinischer Daten. Diese k¨onnen auch digitale Bilder, deren Segmentierung, Oberfl¨achendefini- tionen oder Bildregistrierungen enthalten. Der Standard ISO/TC215 f¨ur Medizininformatik beinhaltet sowohl das Dateiformat (Dateinamenerweiterung *.dcm) als auch ein Kommunikationsprotokoll f¨ur den Datenaus- tausch. Direct Volume Rendering Beim Direct Volume Rendering werden die Voxel-Daten mit einem optischen Modell berechnet. Dabei k¨onnen Emission, Reflektion, Streuung, Absorption und Verdeckung von Licht ber¨ucksichtigt werden. Die Methode steht im Kontrast zu indirekten Rendering-Methoden, bei denen die Oberfl¨ache mit einem Pre-Prozess extrahiert wird (z.B. Isosurfaces). Siehe auch: Volume Rendering. Immersion Als Immersion wird das Eintauchen einer teilnehmenden Person in eine virtuelle Realit¨at bezeichnet. Die Immersion kann dabei ausschliesslich mental sein – wie z.B. beim lesen eines Buches – oder aber auch physisch erfahren werden: Die virtuelle Welt umgibt die Person vollst¨andig. Siehe auch: Cave Automatic Virtual Environment. OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 18
  • 22. Immersive 3D Immersive 3D (I3D) ist ein Rendering-Framework f¨ur das Haptic CAVE System im cpvrLab des HuCE. Siehe auch: Rendering, Cave Automatic Virtual Environment. Level of Detail Level of Detail, kurz LOD: dt. Detaillierungsgrad. Magnetresonanztomografie Die Magnetresonanztomografie (MRT, auch Kernspintomografie, engl. Magnetic Resonance Imaging MRI) ist ein bildgebendes Verfahren in der medizinischen Diagnostik. Parallel Rendering Als Parallel Rendering wird eine nebenl¨aufig verteilte Bildsynthese bezeichnet. Siehe auch: Rendering. Positronen-Emissions-Tomografie Die Positronen-Emissions-Tomografie (PET) ist ein bildgebendes Verfahren in der Nuklearmedizin. Dabei wird die Verteilung einer zuvor in den K¨orper eingebrachten, schwach radioaktiven Substanz (Radiopharmakon) im lebenden Organismus detektiert. So k¨onnen biochemische und physiologische Funktionen sichtbar gemacht werden (funktionelle Bildgebung). Realtime Rendering Als Realtime Rendering (dt. Echtzeit-Rendern) wird die Bildsynthese zur Laufzeit unter Ber¨ucksichtigung von Benutzerinteraktion bezeichnet. Der Renderer synthetisiert die Bilddaten gem¨ass der aktuellen Szenerie. Im Gegensatz dazu kann die Bildsynthese auf sogenannten Render-Farmen f¨ur vorbe- stimmte Szenen ¨uber Stunden, Tage oder Wochen dauern. Siehe auch: Rendering. Rendering Rendering oder rendern (von engl. ’to render’) bezeichnet in der Computergrafik den Vorgang der Bildsynthese, also die Berechnung eines Bildes aus Rohdaten. Computerprogramme zum Rendern von Bildern werden Renderer genannt. Stereobildwiedergabe Eine Stereobildwiedergabe kann durch spektrales Multiplexing (gleichzeitige ¨Ubertragung von mehreren Nachrichten ¨uber denselben Sender) mit Anaglyphen realisiert werden. Bei professionellen Systemen werden jedoch zwei polarisierte Kan¨ale getrennt projiziert, die Projektionen mit ebenso polarisierten 3D-Brillen betrachtet. Siehe auch: Anaglyphe. Szene Eine Szene ist ein virtuelles r¨aumliches Modell, das Lichtquellen, Objekte und deren Materialeigenschaften sowie die Position und Blickrichtung eines Betrachters festlegt. Szenengraph Ein Szenengraph ist eine objektorientierte Datenstruktur zur Datenhaltung einer Szene. Die Objekte einer Szene werden dabei hierarchisch gruppiert, die Struktur ist als Graph angelegt. Siehe auch: Szene. Volume Rendering Als Volume Rendering wird die Synthese von Voxel-basierten Grafiken bezeichnet. Das Resultat wird (dt.) auch Volumengrafik genannt. Siehe auch: Direct Volume Rendering, Rendering, Voxel. Voxel Kurz f¨ur Volumen-Pixel, ein volumetrischer Bildpunkt einer 3D-Rastergrafik. OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 19
  • 23. Literaturverzeichnis [AS12] Edward Angel und Dave Shreiner. ” Advanced Rendering“. In: Interactive computer graphics: A top- down approach with Shader-Based OpenGL. 6. Aufl. Boston: Pearson, 2012. Kap. 11. ISBN: 0-13254- 523-3. [CPVR11a] ” Haptic CAVE“. In: cpvrLab Wiki. Institute for Human Centered Engineering HuCE, BUAS, 23. Jan. 2011. URL: https://www.cpvrlab.ti.bfh.ch/wiki/huce:cpvrlab:cave:start (besucht am 06. 02. 2015). [CPVR11b] ” Visualization“. In: cpvrLab Wiki. Institute for Human Centered Engineering HuCE, BUAS, 23. Jan. 2011. URL: https://www.cpvrlab.ti.bfh.ch/wiki/huce:cpvrlab:cave:visualization: start (besucht am 06. 02. 2015). [CPVR11c] Robert Hauck und Urs K¨unzler. ” Immersive 3D“. In: Website des cpvrLab. Institute for Human Cen- tered Engineering HuCE, BUAS, 2011. URL: https://www.cpvrlab.ti.bfh.ch/research/ projects/immersive-3d/ (besucht am 06. 02. 2015). [EMP09] Stefan Eilemann, Maxim Makhinya und Renato Pajarola. ” Equalizer: A Scalable Parallel Rendering Framework“. In: IEEE Transactions on Visualization and Computer Graphics, No. 3. Bd. 15. Mai 2009. [Fuj00] Richard M. Fujimoto. Parallel and Distributed Simulation Systems. Wiley, 2000. [Hau15] Robert Hauck. Programming Guide for I3D. Version 1.7. Institute for Human Centered Engineering HuCE, BUAS, 28. Jan. 2015. [Joh+06] Chris Johnson u. a. NIH/NSF Visualization Research Challenges. IEEE, Jan. 2006. ISBN: 0-7695- 2733-7. URL: http://vgtc.org/about-us/national-initiative/nihnsf-visualization- research-challenges-report (besucht am 28. 05. 2015). [Kaj86] James T. Kajiya. ” The Rendering Equation“. In: ACM 20.4 (Aug. 1986). [Mak12] Maxim Makhinya. ” Performance Challenges in Distributed Rendering Systems“. Diss. Institut f¨ur Informatik, Universit¨at Z¨urich, 2012. URL: http : / / www . zora . uzh . ch / 62015/ (besucht am 20. 02. 2015). [Mar07] Paul Martz. OpenSceneGraph quick start guide: A quick introduction to the Cross-Platform open source scene graph API. Louisville CO: Skew Matrix Software, 2007. URL: http://www.skew- matrix.com/OSGQSG/ (besucht am 01. 06. 2015). [OSIRIX] Antoine Rosset. DICOM sample image sets. URL: http://www.osirix-viewer.com/datasets/ (besucht am 28. 05. 2015). [Rez05] Christof Rezk-Salama. ” Volume Rendering Techniques for General Purpose Graphics Hardware“. In: it – Information Technology 1.47 (2005), S. 54–56. [RTVG06] Christof Rezk-Salama u. a. Real-Time Volume Graphics. 1. Aufl. Wellesley, Mass: A K Peters, 2006. ISBN: 1-56881-266-3. URL: http://www.real-time-volume-graphics.org/. [SSC01] Mel Slater, Anthony Steed und Yiorgos Chrysanthou. Computer Graphics and Virtual Environments – From Realism to Real-Time. 1. Aufl. Upper Saddle River, N.J.: Addison-Wesley, 2001. ISBN: 0- 201-62420-6. [VLIB] Stefan Roettger. The Volume Library. Jan. 2006. URL: http://www9.informatik.uni-erlangen. de/External/vollib/ (besucht am 28. 05. 2015). OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 20
  • 24. Bildnachweis Titelbild: Oben: Lopster, Tomato, Frog. Unten: Orange, The Carp, Bonsai #2 (v.l.n.r). In: [VLIB]. Abbildung 2.1: V.l.n.r, v.o.n.u: Physik: Hejazialhosseini B., Rossinelli D., Conti C., Koumoutsakos P.: Volume-rendered density field of late- time shock-bubble interactions at M = 3. Orange/ blue denote high/ low density values. Swiss National Supercomputing Centre CSCS, 2014. URL: http://www.cscs.ch/cscs/enabling_science/user_ lab/index.html (besucht am 28. Mai 2015). Klimatologie: 17 Jul 2005 22:00:00, Bildschirmfoto der Animation bei Abspielzeit 1:01/1:28. In: Greg Shirah u.a.: Volume-Rendered Global Atmospheric Model. NASA’s Scientific Visualization Studio, 2014. URL: http://svs.gsfc.nasa.gov/goto?4180 (besucht am 28. M¨arz 2015). Arch¨aologie: Ein Werkzeug zur Holzbearbeitung [. . . ]. In: Mit dem Hochleistungs-Computertomographen durchleuchtet – neue Erkenntnisse zur keltischen Deponierung. Arch¨aologische Bodenforschung Basel- Stadt, August 2013. URL: http://www.archaeologie.bs.ch/ausgraben/aktuelle-ausgrabungen/ deponierung-2013.html (besucht am 29. Mai 2015), Bearbeitet mit GIMP. Anatomie: Antoine Rosset: P120/0229 RM, Human head and neck, CT scan. In: Digital Anatomy – The Body Revealed. Media set 1411, Science Photo Library. URL: http://www.sciencephoto.com/set/ 1411/digital-anatomy-the-body-revealed (besucht am 29. Mai 2015). Abbildung 2.2: Ohne Bildunterschrift. In: Pr¨asentationen zu [RTVG06]. Abbildung 2.3: Ohne Bildunterschrift. In: Pr¨asentationen zu [RTVG06]. Abbildung 2.4: Ohne Bildunterschrift. In: Pr¨asentationen zu [RTVG06]. Abbildung 2.5: Ohne Bildunterschrift. In: Pr¨asentationen zu [RTVG06]. Abbildung 2.6: Ohne Bildunterschrift. In: Pr¨asentationen zu [RTVG06]. Abbildung 2.7: Example of octree. In: I Will Get That Job At Google. URL: http://iwillgetthatjobatgoogle. tumblr.com/post/18742139332/octree (besucht am 15. M¨arz 2015). Abbildung 2.12: Ausschnitt aus: Fig. 1. Various Equalizer use cases: (a) immersive CAVE, (b) display wall and (c) scalable volume rendering. In: [EMP09, S. 1]. Abbildung 2.8: Ohne Bildunterschrift (Datei: cave complete 3d 1280px.jpg). In: [CPVR11a]. Abbildung 2.9: Ohne Bildunterschrift (Datei: projectors 1280px.jpg). In: [CPVR11b]. Abbildung 2.10: Ohne Bildunterschrift (Dateien: polarizer.png und glasses.jpg). Bearbeitet mit GIMP. In: [CP- VR11b]. Abbildung 2.11: Ohne Bildunterschrift (Dateien: projector correctio.png und projector resoluti.png). In: [CP- VR11b]. Abbildung 2.13: Fig. 12. An example Equalizer CAVE configuration with the associated real-world counterparts. In: [EMP09, S. 7]. Abbildung 3.1: Dom¨anenmodell-Diagramm, erstellt mit Umlet. Roland Bruggmann, 2015. OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 21
  • 25. Abbildungsverzeichnis 2.1. Wissenschaftliche Visualisierungen mit Volume Rendering . . . . . . . . . . . . . . . . . . . . . . . 2 2.2. Texture slicing vs. Raycasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3. Ray setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.4. Sichtstrahl mit dem Emissions-Absorptions-Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.5. Klassifikation mit einer Transferfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.6. Voxel in Graustufen und koloriert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.7. Bricking des Raumes und Modellierung als Octree . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.8. R¨aumliche Anordnung des Haptic CAVE System . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.9. Komposition zweier Projektoren zum Bescheinen einer Wand . . . . . . . . . . . . . . . . . . . . . 7 2.10. Schema eines 45 °-Polarisationsfilters und 3D-Brille . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.11. Anordnung der Projektoren f¨ur die Stereobildwiedergabe und erreichte Aufl¨osungen . . . . . . . . . 8 2.12. Power wall mit 2 × 3 Displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.13. Schema einer Konfiguration von Equalizer f¨ur ein CAVE . . . . . . . . . . . . . . . . . . . . . . . . 9 3.1. Dom¨anenmodell-Diagramm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 22
  • 26. A. Arbeitsorganisation A.1. Projektbeschrieb und Pr¨asentationsdaten Projekt (Vorschlag Dozierende) OSG Volume Rendering Aufgabe Für das CAVE Rendering Framework welches of Open Scene Graph und Equalizer Libraries aufbaut soll ein neuer Volume Rendering Node für das Rendering medizinischer Daten integriert werden. Das Rendering soll die die Möglichkeiten modernere Grafik-Hardware ausnutzen und soweit möglich auf der GPU ausgeführt werden und mittels der OpenGL Shading Language (GLSL) implementiert sein. Technologien OpenGL, GLSL, OSG, Equalizer, C++ URL http://www.openscenegraph.org Schwerpunkt Computer Perception and Virtual Reality Betreuende Urs Künzler Kontakt urs.kuenzler@bfh.ch © 2014 Berner Fachhochschule Technik und Informatik - Fachbereich Informatik Präsentationen Projekt2 Freitag, 05.06.2015 (Raum N311), 14:00-15:30 Beteiligte Projekt Zeit Dauer (m) Betreuer Christoph Seiler (seilc1) Partnervorschläge in einer Partnerbörse 14:05-14:15 10 arb1 Daniel Inversini (inved1), Julien Villiger (villj2) Unity3D im CAVE 14:20-14:35 15 klu1 Marco Füllemann (fullm1), Janosch Rohdewald (rohdj1) Analyse von Lymphknoten in PET/CT Aufnahmen 14:40-14:55 15 hsm4 Roland Bruggmann (brugr9) OSG Volume Rendering 15:00-15:10 10 klu1 Camille Zanni (zannc2) 3D CAD for Human Eye Surgery 15:15-15:25 10 klu1 OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 23
  • 27. A.2. Zeitplan Projekt230.03.2015 Gantt-Diagramm3 VorgangAnfangEnde Pflichtenheft20.03.1520.03.15 VolumeRenderingPipeline20.03.1525.03.15 Prototype26.03.1513.05.15 BigDataset14.05.1520.05.15 TFF21.05.1527.05.15 CAVE28.05.1503.06.15 Präsentation05.06.1505.06.15 Bericht12.06.1512.06.15 2015 Woche10Woche11Woche12Woche13Woche14Woche15Woche16Woche17Woche18Woche19Woche20Woche21Woche22Woche23Woche24Woche25 02.03.1509.03.1516.03.1523.03.1530.03.1506.04.1513.04.1520.04.1527.04.1504.05.1511.05.1518.05.1525.05.1501.06.1508.06.1515.06.15 PflichtenheftBerichtPräsentation [20.03.15-20.03.15] Pflichtenheft [20.03.15-25.03.15] VolumeRenderingPipeline [26.03.15-13.05.15] Prototype [14.05.15-20.05.15] BigDataset [21.05.15-27.05.15] TFF [28.05.15-03.06.15] CAVE [05.06.15-05.06.15] Präsentation [12.06.15-12.06.15] Bericht OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 24
  • 28. A.3. Arbeitsjournal Summa Typ Budget Haben Rest Beschreibung A 12.0 12.2 -0.2 Kontaktunterricht B 108.0 204.7 -96.7 Selbststudium Details Datum von bis Std Typ Tätigkeit Details Mi 04.02.15 13:30 14:00 0.50 A Projektwahl 14:30 19:00 4.50 B Quellen, Dokumentation Do 05.02.15 15:00 20:00 5.00 B Quellen, Dokumentation 22:30 00:00 1.50 B Lesen Fr 06.02.15 00:00 01:30 1.50 B Lesen 14:30 14:45 0.25 B Quellen Ausleihe (Bibliothek) 15:30 19:00 3.50 B Dokumentation 23:00 00:00 1.00 B Lesen Sa 07.02.15 00:00 01:30 1.50 B Lesen 21:00 21:30 0.50 B Dokumentation So 08.02.15 00:00 02:00 2.00 B Dokumentation Mo 09.02.15 0.00 Di 10.02.15 0.00 Mi 11.02.15 13:00 13:15 0.25 B Quellen Ausleihe (Bibliothek) 13:30 16:45 3.25 B Quellen, Dokumentation 21:30 23:00 1.50 B Lesen OSG Quickstart Guide Do 12.02.15 11:00 11:30 0.50 B Dokumentation Fr 13.02.15 03:10 03:40 0.50 B Dokumentation 17:15 18:45 1.50 B Quellen, Dokumentation 22:30 00:00 1.50 B Dokumentation Sa 14.02.15 00:00 02:30 2.50 B Dokumentation So 15.02.15 0.00 Mo 16.02.15 0.00 Di 17.02.15 0.00 Mi 18.02.15 10:20 11:55 1.58 A Kick-Off Meeting 12:15 12:30 0.25 B Quellen Ausleihe (Bibliothek) Do 19.02.15 0.00 Fr 20.02.15 23:00 00:00 1.00 B Lesen OSG scenegraph report Sa 21.02.15 00:00 01:00 1.00 B Lesen OSG osgQtQuick 16:00 16:15 0.25 B Dokumentation Zeitplan 16:15 17:15 1.00 B Dokumentation So 22.02.15 0.00 Mo 23.02.15 14:00 19:00 5.00 B Quellen, Dokumentation Uni ZH, KAUST Di 24.02.15 0.00 Mi 25.02.15 10:20 11:55 1.58 A Introduction Robert Hauck: I3D, OSG, Equalizer 12:45 15:10 2.42 B Quellen Uni ZH, KAUST 15:25 16:10 0.75 B Quellen Do 26.02.15 08:30 09:00 0.50 B Quellen 09:00 09:30 0.50 B Skizze GUI Qt, GLSL multithreading 09:30 10:00 0.50 B Skizze Rendering RS 0-7 als Render-Cluster Fr 27.02.15 0.00 Sa 28.02.15 19:30 20:30 1.00 B Quellen Recherche: Eilemann So 01.03.15 20:30 20:45 0.25 B Quellen Recherche: Volume Rendering, GL, CUDA Mo 02.03.15 0.00 Di 03.03.15 0.00 Mi 04.03.15 10:20 11:55 1.58 B 13:00 13:30 0.50 B 13:30 14:30 1.00 A Besprechung Pflichtenheft 14:30 16:10 1.67 B Quellen Recherche: Trilinos, nana Do 05.03.15 08:30 08:45 0.25 B Quellen Büchertransport 22:00 00:00 2.00 B Lesen Eng06 Fr 06.03.15 00:00 01:00 1.00 B Lesen Eng06 15:30 16:30 1.00 B Pflichtenheft Sa 07.03.15 07:15 09:00 1.75 B Dokumentation Disposition, Zeitplan 09:00 12:00 3.00 B Pflichtenheft So 08.03.15 0.00 Mo 09.03.15 0.00 Di 10.03.15 12:00 13:00 1.00 B Pflichtenheft Entwurf, E-Mail Mi 11.03.15 10:20 11:05 0.75 B Quellen, Tech-Talk 13:00 14:00 1.00 B Lesen Eng06 14:00 14:30 0.50 A Besprechung Pflichtenheft, Disposition 14:30 16:10 1.67 B Pflichtenheft Zeitplan Do 12.03.15 0.00 Fr 13.03.15 0.00 Sa 14.03.15 0.00 So 15.03.15 0.00 Mo 16.03.15 21:30 00:00 2.50 B Lesen Schubert / Scholl Di 17.03.15 22:45 00:00 1.25 B Lesen DiVerdi / Candussi / Höllerer Mi 18.03.15 10:30 11:55 1.42 A Besprechung Pflichtenheft 12:45 13:30 0.75 B Pflichtenheft 13:30 14:30 1.00 B Quellen 14:30 16:10 1.67 B Quellen Do 19.03.15 22:00 23:30 1.50 B Lesen compression comparison Fr 20.03.15 15:00 22:00 7.00 B Pflichtenheft Abgabe Sa 21.03.15 0.00 So 22.03.15 0.00 Mo 23.03.15 0.00 Di 24.03.15 0.00 Mi 25.03.15 10:20 11:55 1.58 B cpvrLab einrichten Arbeitsplatz 12:45 15:10 2.42 B Besprechung 15:25 16:10 0.75 B cpvrLab Do 26.03.15 0.00 Fr 27.03.15 0.00 Sa 28.03.15 0.00 So 29.03.15 0.00 Mo 30.03.15 16:00 16:30 0.50 B Pflichtenheft Update Zeitplan Di 31.03.15 0.00 Mi 01.04.15 0.00 Do 02.04.15 11:45 12:00 0.25 B Planung 12:00 15:00 3.00 B Bericht Ray Casting, Parallel Rendering Fr 03.04.15 0.00 Sa 04.04.15 0.00 So 05.04.15 0.00 Mo 06.04.15 0.00 OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 25
  • 29. Di 07.04.15 0.00 Mi 08.04.15 0.00 Do 09.04.15 0.00 Fr 10.04.15 0.00 Sa 11.04.15 0.00 So 12.04.15 0.00 Mo 13.04.15 0.00 Di 14.04.15 0.00 Mi 15.04.15 10:20 11:00 0.67 B cpvrLab Installations-Session 11:00 11:30 0.50 A Besprechung 12:45 15:10 2.42 B cpvrLab Installations-Session 15:25 16:10 0.75 B cpvrLab Installations-Session Do 16.04.15 0.00 Fr 17.04.15 0.00 Sa 18.04.15 19:45 20:00 0.25 B Bericht Titel So 19.04.15 0.00 Mo 20.04.15 0.00 Di 21.04.15 0.00 Mi 22.04.15 12:45 15:10 2.42 A CAVE intro Robert Hauck: Demo / Config etc. Do 23.04.15 0.00 Fr 24.04.15 0.00 Sa 25.04.15 0.00 So 26.04.15 0.00 Mo 27.04.15 0.00 Di 28.04.15 0.00 Mi 29.04.15 0.00 Do 30.04.15 0.00 Fr 01.05.15 15:00 15:15 0.25 A Besprechung Ad-hoc Sa 02.05.15 0.00 So 03.05.15 0.00 Mo 04.05.15 0.00 Di 05.05.15 0.00 Mi 06.05.15 0.00 Besprechung (EuroGraphics in Zürich) Do 07.05.15 0.00 Fr 08.05.15 0.00 Sa 09.05.15 0.00 So 10.05.15 0.00 Mo 11.05.15 0.00 Di 12.05.15 0.00 Mi 13.05.15 11:00 11:30 0.50 A Besprechung Do 14.05.15 0.00 Fr 15.05.15 0.00 Sa 16.05.15 0.00 So 17.05.15 0.00 Mo 18.05.15 0.00 Di 19.05.15 0.00 Mi 20.05.15 12:00 14:00 2.00 B Bericht Besprechungsgrundlage erstellen 14:00 14:30 0.50 A Besprechung Inhaltsverzeichnis etc. Do 21.05.15 08:15 08:30 0.25 B cpvrLab Räumen Arbeitsplatz 16:00 17:00 1.00 B Prototyp Reopsitory, C++-Projekt erstellt 19:00 20:00 1.00 B Bericht Anpassung gemäss Besprechung 20:00 21:00 1.00 B Präsentation Entwurf Fr 22.05.15 20:45 21:00 0.25 B Daten Recherche, download und Update Repo Sa 23.05.15 13:00 13:15 0.25 B Arbeitsplanung Planung der verbleibenden 3 Wochen 13:15 15:30 2.25 B Bericht Literatur, Short summary, Einleitung 17:00 21:00 4.00 B Bericht Inhalte aus Pflichtenheft, Kapitel und Abschnitte 22:30 00:00 1.50 B Bericht Grundlagen, Literatur zuweisen, Anhang So 24.05.15 00:00 03:30 3.50 B Bericht Grundlagen, Bildnachweis 13:00 15:30 2.50 B Bericht Grundlagen, Glossar 16:30 21:00 4.50 B Bericht Grundlagen, Bildnachweis 22:00 23:30 1.50 B Bericht Grundlagen Mo 25.05.15 10:30 12:00 1.50 B Bericht Grundlagen 13:00 16:00 3.00 B Bericht Grundlagen 16:30 21:00 4.50 B Bericht Grundlagen 22:00 00:00 2.00 B Präsentation Di 26.05.15 00:00 01:45 1.75 B Präsentation Mi 27.05.15 11:30 12:00 0.50 A Besprechung 13:00 16:30 3.50 B Präsentation und Bericht 18:00 20:00 2.00 B Präsentation und Bericht Do 28.05.15 14:00 18:00 4.00 B Prototyp Fr 29.05.15 21:45 22:30 0.75 B Prototyp Sa 30.05.15 11:30 14:30 3.00 B Prototyp 16:30 19:30 3.00 B Prototyp 20:30 00:00 3.50 B Prototyp So 31.05.15 00:00 02:30 2.50 B Prototyp 15:00 18:00 3.00 B Prototyp Mo 01.06.15 11:00 15:00 4.00 B Prototyp 16:00 17:00 1.00 B Prototyp 18:00 22:00 4.00 B Prototyp Di 02.06.15 15:00 16:00 1.00 B Prototyp Mi 03.06.15 09:30 14:45 5.25 B Prototyp 14:45 15:10 0.42 A Cave integration Robert Hauck: Config, Applikation 19:30 22:00 2.50 B Prototyp Do 04.06.15 08:30 13:00 4.50 B Prototyp 17:00 00:00 7.00 B Prototyp 00:00 02:00 2.00 B Prototyp Fr 05.06.15 11:00 14:30 3.50 B Präsentation 15:00 15:20 0.33 B Vortrag Präsentation 17:00 19:00 2.00 B Bericht Sa 06.06.15 14:00 18:00 4.00 B Bericht 22:00 23:00 1.00 B Bericht So 07.06.15 0.00 Mo 08.06.15 0.00 Di 09.06.15 20:00 22:00 2.00 B Bericht Mi 10.06.15 11:00 11:30 0.50 A Besprechung Bericht Do 11.06.15 21:00 22:30 1.50 B Bericht Fr 12.06.15 09:00 12:00 3.00 B Bericht 14:30 00:00 9.50 B Abgabetermin Bericht OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 26
  • 30. B. Materialien B.1. E-Mail Luggen B.2. E-Mail Blatter OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 27
  • 31. Selbst¨andigkeitserkl¨arung Ich best¨atige, dass ich die vorliegende Arbeit selbstst¨andig und ohne Benutzung anderer als der im Literaturver- zeichnis angegebenen Quellen und Hilfsmittel angefertigt habe. S¨amtliche Textstellen, die nicht von mir stammen, sind als Zitate gekennzeichnet und mit dem genauen Hinweis auf ihre Herkunft versehen. Ort, Datum: Biel/Bienne, 13. Juni 2015 Vorname, Name: Roland Bruggmann Unterschrift: ...................................... OSG Volume Rendering, Semesterarbeit, Version 1.1 vom 13. Juni 2015 28