SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Studiengang: Informatik, Vertiefung in Computer Perception and Virtual Reality CPVR
Diplomand: Roland Bruggmann, roland.bruggmann@students.bfh.ch
Betreuer: Urs K¨unzler, urs.kuenzler@bfh.ch
Experte: Federico Fl¨uckiger, federico.flueckiger@gs-efd.admin.ch
Datum: 16. Juni 2016
Berner Fachhochschule | Haute ´ecole sp´ecialis´ee bernoise | Bern University of Applied Sciences
Unity®
Volume Rendering
Plug-in zum Rendern von medizinischen Daten
Benutzerhandbuch
Inhaltsverzeichnis
1 Einleitung 1
2 Installationshinweise 2
2.1 Systemanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 Plug-in 3
3.1 Datens¨atze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1.1 DICOM-Datensatz importieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1.2 Datensatz aus Selektion erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.3 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Volumen-Objekt erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 Die Komponente Bounding Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4 Die Komponente Volume Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.5 Die Komponente Region of Interest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.6 Rendermethode und Transferfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.6.1 Textur als Transferfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.6.2 Liste von Farben als Transferfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.7 Benutzerhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 i
1 Einleitung
F¨ur die ¨arztliche Diagnose und Therapie kommen heutzutage computergest¨utzte Verfahren zur Anwendung. Medizi-
nische Bilddaten werden dabei per Computertomograph aquiriert und in einer Bildanalyse aufbereitet. Das Resultat
wird schliesslich als Volumengrafik dargestellt. Solche Visualisierungen k¨onnen auch der Wissensbildung dienen und
in Schulungen Verwendung finden. Dazu betreibt das cpvrLab am Institute for Human Centered Engineering (Hu-
CE) der BFH-TI ein Cave Virtual Environment (CAVE). Das System wurde vormals als Umgebung f¨ur Simulationen
eingesetzt, um Arbeitsabl¨aufe im Operationssaal zu lernen und lehren. Seither besteht die Vision, in der virtuellen
Trainingsumgebung auch medizinische Bilddaten als Volumengrafik einbinden zu k¨onnen.
Seit Ende Herbstsemester 2015/16 werden die 3D-Szenerien im cpvrLab mit Unity gerendert, so auch f¨ur das
CAVE. Der Diplomand hat deshalb im Rahmen der Bachelor Thesis 2016 f¨ur Unity ein Plug-in zum Rendern von
Volumengrafiken aus medizinischen Daten erstellt.
In diesem Benutzerhandbuch zu finden sind die Systemanforderungen und Installationshinweise (siehe Kapitel 2).
Das Manual in Kapitel 3 soll Spiele-Entwicklern bei der Verwendung des Plug-ins im Unity-Editor Unterst¨utzung
bieten.
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 1
2 Installationshinweise
2.1 Systemanforderungen
ˆ Betriebssystem: Microsoft Windows 8 oder neuer, 64-Bit, mit .NET 2.0
ˆ Visualization Toolkit (VTK): ActiViz .NET, mindestens Version 5.8.x;1
bin-Ordner in der PATH-Systemvariable
ˆ Unity:2
Mindestens Version 5.3.x
2.2 Download
Das Plug-in wird auf einer Online-Plattform als Unity-Paket bereitgestellt (Dateinamenerweiterung *.unitypackage)
und kann ¨uber folgende Internetadresse heruntergeladen werden:
https://github.org/brugr9/unityvolumerendering/02_Prototyp/cpvrLab-VolumeRendering.unitypackage
2.3 Installation
Die Installation des Plug-ins in ein Unity-Projekt erfolgt ¨uber den Asset-Workflow von Unity als Import eines
Custom-Packages:
1. Starten Sie Unity und ¨offnen Sie ein Projekt, in welchem Sie das Plug-in verwenden m¨ochten.
2. W¨ahlen Sie das Men¨u Assets > Import Package > Custom Package ..., um den Datei-Explorer zu
starten (siehe Abbildung 2.1).
3. W¨ahlen Sie im Explorer das Paket cpvrLab-VolumeRendering.unitypackage unter dem Ihnen bekannten
Pfad. Danach wird der Dialog Import Unity Package angezeigt.
4. W¨ahlen Sie alle Elemente des Paketes aus und dr¨ucken anschliessend Import. Unity installiert den Inhalt des
Paketes in den Asset-Ordner.
Abbildung 2.1: Men¨u Import Package
1ActiViz .NET, URL: http://www.kitware.com/products/activiz.html (besucht am 9. Mai 2016).
2Unity Technologies. URL: https://unity3d.com/ (besucht am 9. Mai 2016).
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 2
3 Plug-in
3.1 Datens¨atze
3.1.1 DICOM-Datensatz importieren
Um medizinische Daten zu rendern, kann mit diesem Plug-in ein DICOM-Datensatz importiert werden. Dazu kann
in der Project-View ¨uber das Kontext-Men¨u (RMT) der Eintrag ’Import DICOM-Dataset...’ gew¨ahlt werden (siehe
Abbildung 3.1). Danach ¨offnet sich ein Datei-Explorer, mit dem ein Ordner auf dem System angegeben werden
kann, welcher einen DICOM-Datensatz enth¨alt (Dateinamenerweiterung *.dcm). Zu beachten ist, dass die Dateien
im Datei-Explorer leider nicht angezeigt werden (siehe Abbildung 3.2).
Abbildung 3.1: Kontext-Men¨u der Project-View mit dem Eintrag ’Import DICOM-Dataset. . . ’
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 3
Abbildung 3.2: Datei-Explorer ’Import DICOM-Dataset. . . ’ zur Wahl eines Ordners mit *.dcm-Dateien
W¨ahrend des Imports werden folgende Schritte durchgef¨uhrt:
ˆ In der Assets-Datenbank wird ein neuer Ordner erstellt. Er erh¨alt denselben Namen wie der im Datei-Explorer
angegebene Ordner.
ˆ Aus dem Datensatz werden Metadaten gelesen und in eine JSON-Datei geschrieben, zu finden im neuen
Ordner.
ˆ Aus dem Datensatz werden Bilder als *.png in den neuen Ordner gespeichert (siehe Abbildung 3.3).
ˆ Aus den Bildern wird eine 3D-Textur (Texture3D) als Asset erstellt. Die JSON-Datei enth¨alt nebst den
Metadaten auch eine Liste der PNG-Dateien, aus welchen die 3D-Textur erstellt wurde sowie die GUID der
3D-Textur selber.
Abbildung 3.3: Inspector-View mit den Einstellungen eines Bildes nach dem Import
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 4
3.1.2 Datensatz aus Selektion erstellen
Mit dem Plug-in kann aus einer Auswahl von CT-Bildern aus den Assets 3D-eine Textur erstellt werden (siehe
Abbildung 3.4). Dies bietet den Vorteil, dass aus einem Satz von Bildern mehrere Teilbereiche als 3D-Textur
gehalten werden k¨onnen.
Vorallem aber kann auf diesem Wege auch eine Texture3D aus einem Satz von Bildern erstellt werden, welche nicht
mit dem DICOM-Import in die Asset-Datenbank gelangt sind, sondern schon davor als PNG oder JPG auf dem
System vohanden waren, ¨uber den ¨ublichen Workflow von Unity importiert wurden und somit bereits als 2D-Textur
vorhanden sind.
Abbildung 3.4: Kontext-Men¨u der Project-View mit dem Eintrag ’Create > Texture3D from selection’
3.1.3 Templates
Das Plug-in verwendet per Default einen Datensatz ’Default-VolumeDataset’ (JSON-Datei) und ein ’Default-
Volume3D’ (Texture3D, siehe Abbildung 3.5). Das Plug-in h¨alt aber auch Beispiel-Datens¨atze bereit, erstellt aus
Bildern vom SLProject und aus den Beispieldaten von VTK (siehe Abbildungen 3.6 und 3.7).
Abbildung 3.5: Inspector-View von Datensatz und 3D-Textur als Default-Werte
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 5
Abbildung 3.6: Inspector-View von Datensatz und 3D-Textur, erstellt aus den Beispieldaten vom SLProject
Abbildung 3.7: Inspector-View von Datensatz und 3D-Textur, erstellt aus den Beispieldaten von VTK
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 6
3.2 Volumen-Objekt erstellen
Das Erstellen eines Volumen-Objektes erfolgt ¨uber das Men¨u GameObject mit dem Eintrag ’Volume’. Derselbe
Eintrag ist auch in der Hierarchy-View ¨uber das Kontext-Men¨u (RMT) erreichbar (siehe Abbildung 3.8). Das
Volumen-Objekt kann aber auch mit der Tastenkombination Ctrl + Shift + V erstellt werden.
Abbildung 3.8: Men¨u GameObject (links) und Kontext-Men¨u der Hierarchy-View (rechts) mit dem Eintrag ’Volume’
Zum Rendern einer Volumengrafik wird ein kombiniertes Objekt aus zwei GameObjects erstellt: ein GameObject
’Volume’ und dessen Child-GameObject ’Region of Interest’ (siehe Abbildung 3.9).
Abbildung 3.9: Das GameObject ’Volume’ und dessen Child-GameObject ’Region of Interest’ in der Hierarchy-View
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 7
Das GameObject ’Volume’ enth¨alt die in Unity ¨ubliche Transform-Komponente, eine Bounding-Box und einen
’Volume Filter’. Der Filter liest ein als JSON-Datei zugewiesenes Dataset und l¨adt die entsprechende 3D-Textur
ins Shader-Programm. Im Flyout ’Volume Info’ werden die Metadaten des Datensatzes angezeigt (siehe Abbil-
dung 3.10).
Abbildung 3.10: Inspector-View von GameObject ’Volume’
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 8
Dem GameObject ’Volume’ untergeordnet wird eine Region of Interest (ROI) erstellt. Das GameObject erh¨alt die
in Unity ¨ubliche Transform-Komponente, einen Mesh-Filter f¨ur einen ’Cube’, den dazu geh¨orenden Mesh-Renderer
mit einem Material ’Default-Volume’ und die Komponente ’Region of Interest’ (siehe Abbildung 3.11). Mit diesem
GameObject kann der zu rendernde Bereich manuell festgelegt werden. Das Material dient als Transferfunktion
(TF).
Abbildung 3.11: Inspector-View von GameObject ’Region of Interest’
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 9
3.3 Die Komponente Bounding Box
Den GameObjects ’Volume’ und ’Region of Interest’ wird automatisch eine Komponente ’Bounding Box’ hinzugef¨ugt
(siehe Abbildung 3.12). Die Komponente kann nicht editiert werden – sie dient lediglich zur r¨aumlichen Orientierung
in der Scene-View. Die Ausdehnung der GameObjects wird in der Szene-View mit non-axis-aligned Bounding Boxen
(BB) dargestellt: Die ¨aussere BB zeigt die Ausdehnung des GameObjects ’Volume’ (Farbe: weiss), die innere BB
geh¨ort zum GameObject ’Region of Interest’ (Farbe: gelb) (siehe Abbildung 3.13).
Abbildung 3.12: Inspector-View der Komponente Bounding Box
Abbildung 3.13: Darstellung der Bounding Box von GameObject ’Volume’ und GameObject ’Region of Interest’ in
der Scene-View
Die Bounding Box kann ¨uber das Men¨u ’Component > Custom > Bounding Box’ auch anderen GameObjects
hinzugef¨ugt werden (siehe Abbildung 3.14). Dasselbe ist auch ¨uber den Knopf ’Add Component’ in der Inspector-
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 10
View f¨ur ein GameObject m¨oglich (siehe Abbildung 3.15). Pro GameObject kann aber nur eine Bounding Box
verwendet werden (siehe Abbildung 3.16).
Abbildung 3.14: Eintrag Bounding Box im Men¨u Component
Abbildung 3.15: Eintrag Bounding Box in der Komponenten-Maske der Inspector-View
Abbildung 3.16: Meldung ’Invalid Operation’ f¨ur das mehrfache Hinzuf¨ugen einer Bounding Box
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 11
3.4 Die Komponente Volume Filter
Dem GameObject ’Volume’ wir automatisch eine Komponente ’Volume Filter’ hinzugef¨ugt. In dessen Inspector-
View kann im Feld ’Dataset’ ein vormals als JSON-Datei erstellter Datensatz ausgew¨ahlt werden. Ist dies erfolgt,
werden im Flyout ’Info’ Kenndaten des Datensatzes angezeigt (siehe Abbildung 3.17). Zudem wird die in der
JSON-Datei angegebene Texture3D zum Rendern auf die Grafikprozessoren geladen. ¨Uber das Kontext-Men¨u der
Komponente kann die Gr¨osse des Objektes automatisch gesetzt werden (siehe Abbildung 3.18). Dabei wird die
gr¨osse der 3D-Textur mit den Werten des ’Pixel Spacing’ multipliziert und die so erhaltenen x-, y- und z-Werte in
der Transform-Komponente untere ’Scale’ eingetragen.
Abbildung 3.17: Inspector-View der Komponente ’Volume Filter’ mit dem Feld ’Dataset’ und den Kenndaten im
Flyout ’Info’
Abbildung 3.18: Kontext-Men¨u der Komponente ’Volume Filter’ mit dem Eintrag ’Set scale’
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 12
Als User kann man aber auch ein ’Empty GameObject’ erstellen und diesem ¨uber das Men¨u ’Component’ einen
’Volume Filter’ hinzuf¨ugen (siehe Abbildung 3.19). Dasselbe ist auch ¨uber den Knopf ’Add Component’ in der
Inspector-View des ’Empty GameObjects’ m¨oglich (siehe Abbildung 3.20). Pro GameObject kann aber nur ein
’Volume Filter’ verwendet werden (siehe Abbildung 3.21).
Abbildung 3.19: Eintrag ’Volume Filter’ im Men¨u Component
Abbildung 3.20: Eintrag ’Volume Filter’ in der Komponenten-Maske der Inspector-View
Abbildung 3.21: Meldung ’Invalid Operation’ f¨ur das mehrfache Hinzuf¨ugen eines ’Volume Filter’
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 13
3.5 Die Komponente Region of Interest
Dem GameObject ’Region of Interest’ wir automatisch eine Komponente mit demselben Namen hinzugef¨ugt. Die
Komponente ’Region of Interest’ kann nicht editiert werden – sie ist lediglich Zust¨andig f¨ur das Einschr¨anken des
Editierens der Transform-Komponente sowie f¨ur das Laden der Werte aus der Transform-Komponente auf den
Volumen-Shader (siehe Abbildung 3.22). Nat¨urlich ist der Gebrauch der Komponente nur sinnvoll als Child-Objekt
eines GameObjects mit Komponente ’Volume Filter’ sowie in Kombination mit einem Volumen-Material resp. eines
Volumen-Shaders.
Abbildung 3.22: Inspector-View der Komponente ’Region of Interest’
Als User kann man aber auch ein ’Empty GameObject’ erstellen diesem und ¨uber das Men¨u ’Component’ eine
Region of Interest hinzuf¨ugen (siehe Abbildung 3.23). Dasselbe ist auch ¨uber den Knopf ’Add Component’ in der
Inspector-View des ’Empty GameObjects’ m¨oglich (siehe Abbildung 3.24). Pro GameObject kann aber nur eine
Region of Interest verwendet werden (siehe Abbildung 3.25).
Abbildung 3.23: Eintrag ’Region of Interest’ im Men¨u Component
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 14
Abbildung 3.24: Eintrag ’Volume Filter’ in der Komponenten-Maske der Inspector-View
Abbildung 3.25: Meldung ’Invalid Operation’ f¨ur das mehrfache Hinzuf¨ugen einer Region of Interest
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 15
3.6 Rendermethode und Transferfunktion
Das Rendern der Volumengrafik als GameObject erfolgt ¨uber den in Unity ¨ublichen Workflow mit einem Material und
der Wahl eines Shaders. Das Material kann vom Benutzer kopiert, editiert und gespeichert werden. Per default wird
ein Material namens ’Default-Volume’ aus den Ressources-Assets des Plug-ins verwendet (siehe Abbildung 3.26).
Abbildung 3.26: Inspector-View des Materials ’Default-Volume’ mit einer Auswahl von Volumen-Shader
Die Volumengrafik wird mit einen Raycaster als Rendermethode berechnet. Die dazu ben¨otigte Transferfunktion
kann im Material-Editor festgelegt werden. Dazu stehen folgende Shader-Varianten zur Verf¨ugung:
ˆ Transferfunction Texture: Eine Texture2D als Transferfunktion, im Sinne einer Lookup-Tabelle (LUT).
ˆ Transferfunction Colors: Eine Liste von editierbaren Farben als Transferfunktion.
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 16
3.6.1 Textur als Transferfunktion
Das Material ’Default-Volume’ verwendet eine Texture2D als Lookup-Tabelle (LUT). Dabei handelt es sich um
eine 255 x 1 Pixel grosse Textur mit den drei Farbkan¨alen rot, gr¨un und blau (RGB) sowie einem Alpha-Kanal (siehe
Abbildung 3.27). In den Material-Assets des Plug-ins sind zudem Texture- und Material-Templates zu finden, so
z.B. die 2D-Textur ’Template-TF-LUT-SLProject’. Diese wird im Material ’Template-TF-LUT-SLProject’ verwendet
(siehe Abbildung 3.28).
Abbildung 3.27: Inspector-View der Texturen ’Default-TF-LUT’ und ’Template-TF-LUT-SLProject’
Abbildung 3.28: Inspector-View des Materials ’Template-TF-LUT-SLProject’
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 17
3.6.2 Liste von Farben als Transferfunktion
Mit einer weiteren Komponente ’Transferfunction Color Array’ kann die 2D-Textur, welche als LUT verwendet wird,
editiert werden (siehe Abbildung 3.29). Hinzugef¨ugt wird die Komponente ¨uber das Men¨u ’Component > Volume
> TF Color Array’ oder aber ¨uber den Knopf ’Add Component > Volume > TF Color Array’ in der Inspector-View
eines GameObjects. Auch hier gilt: Pro GameObject kann nur eine Komponente dieses Typs verwendet werden.
Abbildung 3.29: Die Komponente ’Transferfunction Color Array’
Das Plug-in stellt mit einer Color Preset Library namens ’TF-Colors’ vorparametrisierte Farben zur Verf¨ugung
(siehe Abbildung 3.30). Diese k¨onnen im Farbeditor ¨uber ein Flyout aufgerufen und angezeigt werden (siehe Abbil-
dung 3.31).
Abbildung 3.30: Inspector-View der Color Preset Library ’TF-Colors’
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 18
Abbildung 3.31: Color-Editor mit Preset-Library und Color-Editor-Flyout zur Wahl einer Preset-Library
3.7 Benutzerhandbuch
Dieses Benutzerhandbuch ist im Unity-Package auch als PDF-Datei vorhanden und kann ¨uber das Hilfe-Men¨u
aufgerufen werden (siehe Abbildung 3.32).
Abbildung 3.32: Men¨u ’Help’ mit dem Eintrag cpvrLab VolumeRendering Manual
Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 19

Weitere ähnliche Inhalte

Ähnlich wie Unity® Volume Rendering - Benutzerhandbuch

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
 
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
 
Bachelorarbeit paul gerber.pdf
Bachelorarbeit paul gerber.pdfBachelorarbeit paul gerber.pdf
Bachelorarbeit paul gerber.pdfwissem hammouda
 
Numerische Methoden: Approximation und Integration
Numerische Methoden: Approximation und IntegrationNumerische Methoden: Approximation und Integration
Numerische Methoden: Approximation und IntegrationRoland Bruggmann
 
backy - Image-basiertes Backup für virtuelle Maschinen
backy - Image-basiertes Backup für virtuelle Maschinenbacky - Image-basiertes Backup für virtuelle Maschinen
backy - Image-basiertes Backup für virtuelle MaschinenChristian Kauhaus
 
Handbuch CONSIDEO Modeler V 5.0
Handbuch CONSIDEO Modeler V 5.0Handbuch CONSIDEO Modeler V 5.0
Handbuch CONSIDEO Modeler V 5.0Detlef Kahrs
 
Me:mi Koeln Studie zu Handy Tv
Me:mi Koeln Studie zu Handy TvMe:mi Koeln Studie zu Handy Tv
Me:mi Koeln Studie zu Handy TvPatrik Tschudin
 
2014 gnepper,tom entwicklung eines application programming interface, bachelo...
2014 gnepper,tom entwicklung eines application programming interface, bachelo...2014 gnepper,tom entwicklung eines application programming interface, bachelo...
2014 gnepper,tom entwicklung eines application programming interface, bachelo...Markus Schneider
 
Vergleich des Scala Web-Frameworks Lift mit dem Java EE Programmiermodell
Vergleich des Scala Web-Frameworks Lift mit dem Java EE ProgrammiermodellVergleich des Scala Web-Frameworks Lift mit dem Java EE Programmiermodell
Vergleich des Scala Web-Frameworks Lift mit dem Java EE Programmiermodelladesso AG
 
Entwicklung eines Frameworks zum automatisierten Handel eines Multi-Broker-PA...
Entwicklung eines Frameworks zum automatisierten Handel eines Multi-Broker-PA...Entwicklung eines Frameworks zum automatisierten Handel eines Multi-Broker-PA...
Entwicklung eines Frameworks zum automatisierten Handel eines Multi-Broker-PA...Sascha Jonas
 
TYPO3 CMS 7.0 - Die Neuerungen - pluswerk
TYPO3 CMS 7.0 - Die Neuerungen - pluswerkTYPO3 CMS 7.0 - Die Neuerungen - pluswerk
TYPO3 CMS 7.0 - Die Neuerungen - pluswerkdie.agilen GmbH
 

Ähnlich wie Unity® Volume Rendering - Benutzerhandbuch (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
 
Abschlussbericht des Projekts Viprof
Abschlussbericht des Projekts ViprofAbschlussbericht des Projekts Viprof
Abschlussbericht des Projekts Viprof
 
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...
 
Bachelorarbeit paul gerber.pdf
Bachelorarbeit paul gerber.pdfBachelorarbeit paul gerber.pdf
Bachelorarbeit paul gerber.pdf
 
Berliner Open-Data-Strategie
Berliner Open-Data-StrategieBerliner Open-Data-Strategie
Berliner Open-Data-Strategie
 
Mocek Thesis
Mocek ThesisMocek Thesis
Mocek Thesis
 
Numerische Methoden: Approximation und Integration
Numerische Methoden: Approximation und IntegrationNumerische Methoden: Approximation und Integration
Numerische Methoden: Approximation und Integration
 
German Original
German OriginalGerman Original
German Original
 
Manual
ManualManual
Manual
 
backy - Image-basiertes Backup für virtuelle Maschinen
backy - Image-basiertes Backup für virtuelle Maschinenbacky - Image-basiertes Backup für virtuelle Maschinen
backy - Image-basiertes Backup für virtuelle Maschinen
 
Pr O St Doku
Pr O St DokuPr O St Doku
Pr O St Doku
 
Handbuch CONSIDEO Modeler V 5.0
Handbuch CONSIDEO Modeler V 5.0Handbuch CONSIDEO Modeler V 5.0
Handbuch CONSIDEO Modeler V 5.0
 
Me:mi Koeln Studie zu Handy Tv
Me:mi Koeln Studie zu Handy TvMe:mi Koeln Studie zu Handy Tv
Me:mi Koeln Studie zu Handy Tv
 
2014 gnepper,tom entwicklung eines application programming interface, bachelo...
2014 gnepper,tom entwicklung eines application programming interface, bachelo...2014 gnepper,tom entwicklung eines application programming interface, bachelo...
2014 gnepper,tom entwicklung eines application programming interface, bachelo...
 
Vergleich des Scala Web-Frameworks Lift mit dem Java EE Programmiermodell
Vergleich des Scala Web-Frameworks Lift mit dem Java EE ProgrammiermodellVergleich des Scala Web-Frameworks Lift mit dem Java EE Programmiermodell
Vergleich des Scala Web-Frameworks Lift mit dem Java EE Programmiermodell
 
Da Hanno Rabe
Da Hanno RabeDa Hanno Rabe
Da Hanno Rabe
 
Diplomarbeit
DiplomarbeitDiplomarbeit
Diplomarbeit
 
Entwicklung eines Frameworks zum automatisierten Handel eines Multi-Broker-PA...
Entwicklung eines Frameworks zum automatisierten Handel eines Multi-Broker-PA...Entwicklung eines Frameworks zum automatisierten Handel eines Multi-Broker-PA...
Entwicklung eines Frameworks zum automatisierten Handel eines Multi-Broker-PA...
 
TYPO3 CMS 7.0 - Die Neuerungen - pluswerk
TYPO3 CMS 7.0 - Die Neuerungen - pluswerkTYPO3 CMS 7.0 - Die Neuerungen - pluswerk
TYPO3 CMS 7.0 - Die Neuerungen - pluswerk
 

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
 
OSG Volume Rendering - Presentation
OSG Volume Rendering - PresentationOSG Volume Rendering - Presentation
OSG Volume Rendering - PresentationRoland 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 (17)

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
 
OSG Volume Rendering - Presentation
OSG Volume Rendering - PresentationOSG Volume Rendering - Presentation
OSG Volume Rendering - Presentation
 
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
 
Unity® Volume Rendering
Unity® Volume RenderingUnity® Volume Rendering
Unity® Volume Rendering
 

Unity® Volume Rendering - Benutzerhandbuch

  • 1. Studiengang: Informatik, Vertiefung in Computer Perception and Virtual Reality CPVR Diplomand: Roland Bruggmann, roland.bruggmann@students.bfh.ch Betreuer: Urs K¨unzler, urs.kuenzler@bfh.ch Experte: Federico Fl¨uckiger, federico.flueckiger@gs-efd.admin.ch Datum: 16. Juni 2016 Berner Fachhochschule | Haute ´ecole sp´ecialis´ee bernoise | Bern University of Applied Sciences Unity® Volume Rendering Plug-in zum Rendern von medizinischen Daten Benutzerhandbuch
  • 2. Inhaltsverzeichnis 1 Einleitung 1 2 Installationshinweise 2 2.1 Systemanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.3 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 Plug-in 3 3.1 Datens¨atze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.1.1 DICOM-Datensatz importieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.1.2 Datensatz aus Selektion erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1.3 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 Volumen-Objekt erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.3 Die Komponente Bounding Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.4 Die Komponente Volume Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.5 Die Komponente Region of Interest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.6 Rendermethode und Transferfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.6.1 Textur als Transferfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.6.2 Liste von Farben als Transferfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.7 Benutzerhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 i
  • 3. 1 Einleitung F¨ur die ¨arztliche Diagnose und Therapie kommen heutzutage computergest¨utzte Verfahren zur Anwendung. Medizi- nische Bilddaten werden dabei per Computertomograph aquiriert und in einer Bildanalyse aufbereitet. Das Resultat wird schliesslich als Volumengrafik dargestellt. Solche Visualisierungen k¨onnen auch der Wissensbildung dienen und in Schulungen Verwendung finden. Dazu betreibt das cpvrLab am Institute for Human Centered Engineering (Hu- CE) der BFH-TI ein Cave Virtual Environment (CAVE). Das System wurde vormals als Umgebung f¨ur Simulationen eingesetzt, um Arbeitsabl¨aufe im Operationssaal zu lernen und lehren. Seither besteht die Vision, in der virtuellen Trainingsumgebung auch medizinische Bilddaten als Volumengrafik einbinden zu k¨onnen. Seit Ende Herbstsemester 2015/16 werden die 3D-Szenerien im cpvrLab mit Unity gerendert, so auch f¨ur das CAVE. Der Diplomand hat deshalb im Rahmen der Bachelor Thesis 2016 f¨ur Unity ein Plug-in zum Rendern von Volumengrafiken aus medizinischen Daten erstellt. In diesem Benutzerhandbuch zu finden sind die Systemanforderungen und Installationshinweise (siehe Kapitel 2). Das Manual in Kapitel 3 soll Spiele-Entwicklern bei der Verwendung des Plug-ins im Unity-Editor Unterst¨utzung bieten. Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 1
  • 4. 2 Installationshinweise 2.1 Systemanforderungen ˆ Betriebssystem: Microsoft Windows 8 oder neuer, 64-Bit, mit .NET 2.0 ˆ Visualization Toolkit (VTK): ActiViz .NET, mindestens Version 5.8.x;1 bin-Ordner in der PATH-Systemvariable ˆ Unity:2 Mindestens Version 5.3.x 2.2 Download Das Plug-in wird auf einer Online-Plattform als Unity-Paket bereitgestellt (Dateinamenerweiterung *.unitypackage) und kann ¨uber folgende Internetadresse heruntergeladen werden: https://github.org/brugr9/unityvolumerendering/02_Prototyp/cpvrLab-VolumeRendering.unitypackage 2.3 Installation Die Installation des Plug-ins in ein Unity-Projekt erfolgt ¨uber den Asset-Workflow von Unity als Import eines Custom-Packages: 1. Starten Sie Unity und ¨offnen Sie ein Projekt, in welchem Sie das Plug-in verwenden m¨ochten. 2. W¨ahlen Sie das Men¨u Assets > Import Package > Custom Package ..., um den Datei-Explorer zu starten (siehe Abbildung 2.1). 3. W¨ahlen Sie im Explorer das Paket cpvrLab-VolumeRendering.unitypackage unter dem Ihnen bekannten Pfad. Danach wird der Dialog Import Unity Package angezeigt. 4. W¨ahlen Sie alle Elemente des Paketes aus und dr¨ucken anschliessend Import. Unity installiert den Inhalt des Paketes in den Asset-Ordner. Abbildung 2.1: Men¨u Import Package 1ActiViz .NET, URL: http://www.kitware.com/products/activiz.html (besucht am 9. Mai 2016). 2Unity Technologies. URL: https://unity3d.com/ (besucht am 9. Mai 2016). Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 2
  • 5. 3 Plug-in 3.1 Datens¨atze 3.1.1 DICOM-Datensatz importieren Um medizinische Daten zu rendern, kann mit diesem Plug-in ein DICOM-Datensatz importiert werden. Dazu kann in der Project-View ¨uber das Kontext-Men¨u (RMT) der Eintrag ’Import DICOM-Dataset...’ gew¨ahlt werden (siehe Abbildung 3.1). Danach ¨offnet sich ein Datei-Explorer, mit dem ein Ordner auf dem System angegeben werden kann, welcher einen DICOM-Datensatz enth¨alt (Dateinamenerweiterung *.dcm). Zu beachten ist, dass die Dateien im Datei-Explorer leider nicht angezeigt werden (siehe Abbildung 3.2). Abbildung 3.1: Kontext-Men¨u der Project-View mit dem Eintrag ’Import DICOM-Dataset. . . ’ Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 3
  • 6. Abbildung 3.2: Datei-Explorer ’Import DICOM-Dataset. . . ’ zur Wahl eines Ordners mit *.dcm-Dateien W¨ahrend des Imports werden folgende Schritte durchgef¨uhrt: ˆ In der Assets-Datenbank wird ein neuer Ordner erstellt. Er erh¨alt denselben Namen wie der im Datei-Explorer angegebene Ordner. ˆ Aus dem Datensatz werden Metadaten gelesen und in eine JSON-Datei geschrieben, zu finden im neuen Ordner. ˆ Aus dem Datensatz werden Bilder als *.png in den neuen Ordner gespeichert (siehe Abbildung 3.3). ˆ Aus den Bildern wird eine 3D-Textur (Texture3D) als Asset erstellt. Die JSON-Datei enth¨alt nebst den Metadaten auch eine Liste der PNG-Dateien, aus welchen die 3D-Textur erstellt wurde sowie die GUID der 3D-Textur selber. Abbildung 3.3: Inspector-View mit den Einstellungen eines Bildes nach dem Import Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 4
  • 7. 3.1.2 Datensatz aus Selektion erstellen Mit dem Plug-in kann aus einer Auswahl von CT-Bildern aus den Assets 3D-eine Textur erstellt werden (siehe Abbildung 3.4). Dies bietet den Vorteil, dass aus einem Satz von Bildern mehrere Teilbereiche als 3D-Textur gehalten werden k¨onnen. Vorallem aber kann auf diesem Wege auch eine Texture3D aus einem Satz von Bildern erstellt werden, welche nicht mit dem DICOM-Import in die Asset-Datenbank gelangt sind, sondern schon davor als PNG oder JPG auf dem System vohanden waren, ¨uber den ¨ublichen Workflow von Unity importiert wurden und somit bereits als 2D-Textur vorhanden sind. Abbildung 3.4: Kontext-Men¨u der Project-View mit dem Eintrag ’Create > Texture3D from selection’ 3.1.3 Templates Das Plug-in verwendet per Default einen Datensatz ’Default-VolumeDataset’ (JSON-Datei) und ein ’Default- Volume3D’ (Texture3D, siehe Abbildung 3.5). Das Plug-in h¨alt aber auch Beispiel-Datens¨atze bereit, erstellt aus Bildern vom SLProject und aus den Beispieldaten von VTK (siehe Abbildungen 3.6 und 3.7). Abbildung 3.5: Inspector-View von Datensatz und 3D-Textur als Default-Werte Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 5
  • 8. Abbildung 3.6: Inspector-View von Datensatz und 3D-Textur, erstellt aus den Beispieldaten vom SLProject Abbildung 3.7: Inspector-View von Datensatz und 3D-Textur, erstellt aus den Beispieldaten von VTK Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 6
  • 9. 3.2 Volumen-Objekt erstellen Das Erstellen eines Volumen-Objektes erfolgt ¨uber das Men¨u GameObject mit dem Eintrag ’Volume’. Derselbe Eintrag ist auch in der Hierarchy-View ¨uber das Kontext-Men¨u (RMT) erreichbar (siehe Abbildung 3.8). Das Volumen-Objekt kann aber auch mit der Tastenkombination Ctrl + Shift + V erstellt werden. Abbildung 3.8: Men¨u GameObject (links) und Kontext-Men¨u der Hierarchy-View (rechts) mit dem Eintrag ’Volume’ Zum Rendern einer Volumengrafik wird ein kombiniertes Objekt aus zwei GameObjects erstellt: ein GameObject ’Volume’ und dessen Child-GameObject ’Region of Interest’ (siehe Abbildung 3.9). Abbildung 3.9: Das GameObject ’Volume’ und dessen Child-GameObject ’Region of Interest’ in der Hierarchy-View Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 7
  • 10. Das GameObject ’Volume’ enth¨alt die in Unity ¨ubliche Transform-Komponente, eine Bounding-Box und einen ’Volume Filter’. Der Filter liest ein als JSON-Datei zugewiesenes Dataset und l¨adt die entsprechende 3D-Textur ins Shader-Programm. Im Flyout ’Volume Info’ werden die Metadaten des Datensatzes angezeigt (siehe Abbil- dung 3.10). Abbildung 3.10: Inspector-View von GameObject ’Volume’ Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 8
  • 11. Dem GameObject ’Volume’ untergeordnet wird eine Region of Interest (ROI) erstellt. Das GameObject erh¨alt die in Unity ¨ubliche Transform-Komponente, einen Mesh-Filter f¨ur einen ’Cube’, den dazu geh¨orenden Mesh-Renderer mit einem Material ’Default-Volume’ und die Komponente ’Region of Interest’ (siehe Abbildung 3.11). Mit diesem GameObject kann der zu rendernde Bereich manuell festgelegt werden. Das Material dient als Transferfunktion (TF). Abbildung 3.11: Inspector-View von GameObject ’Region of Interest’ Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 9
  • 12. 3.3 Die Komponente Bounding Box Den GameObjects ’Volume’ und ’Region of Interest’ wird automatisch eine Komponente ’Bounding Box’ hinzugef¨ugt (siehe Abbildung 3.12). Die Komponente kann nicht editiert werden – sie dient lediglich zur r¨aumlichen Orientierung in der Scene-View. Die Ausdehnung der GameObjects wird in der Szene-View mit non-axis-aligned Bounding Boxen (BB) dargestellt: Die ¨aussere BB zeigt die Ausdehnung des GameObjects ’Volume’ (Farbe: weiss), die innere BB geh¨ort zum GameObject ’Region of Interest’ (Farbe: gelb) (siehe Abbildung 3.13). Abbildung 3.12: Inspector-View der Komponente Bounding Box Abbildung 3.13: Darstellung der Bounding Box von GameObject ’Volume’ und GameObject ’Region of Interest’ in der Scene-View Die Bounding Box kann ¨uber das Men¨u ’Component > Custom > Bounding Box’ auch anderen GameObjects hinzugef¨ugt werden (siehe Abbildung 3.14). Dasselbe ist auch ¨uber den Knopf ’Add Component’ in der Inspector- Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 10
  • 13. View f¨ur ein GameObject m¨oglich (siehe Abbildung 3.15). Pro GameObject kann aber nur eine Bounding Box verwendet werden (siehe Abbildung 3.16). Abbildung 3.14: Eintrag Bounding Box im Men¨u Component Abbildung 3.15: Eintrag Bounding Box in der Komponenten-Maske der Inspector-View Abbildung 3.16: Meldung ’Invalid Operation’ f¨ur das mehrfache Hinzuf¨ugen einer Bounding Box Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 11
  • 14. 3.4 Die Komponente Volume Filter Dem GameObject ’Volume’ wir automatisch eine Komponente ’Volume Filter’ hinzugef¨ugt. In dessen Inspector- View kann im Feld ’Dataset’ ein vormals als JSON-Datei erstellter Datensatz ausgew¨ahlt werden. Ist dies erfolgt, werden im Flyout ’Info’ Kenndaten des Datensatzes angezeigt (siehe Abbildung 3.17). Zudem wird die in der JSON-Datei angegebene Texture3D zum Rendern auf die Grafikprozessoren geladen. ¨Uber das Kontext-Men¨u der Komponente kann die Gr¨osse des Objektes automatisch gesetzt werden (siehe Abbildung 3.18). Dabei wird die gr¨osse der 3D-Textur mit den Werten des ’Pixel Spacing’ multipliziert und die so erhaltenen x-, y- und z-Werte in der Transform-Komponente untere ’Scale’ eingetragen. Abbildung 3.17: Inspector-View der Komponente ’Volume Filter’ mit dem Feld ’Dataset’ und den Kenndaten im Flyout ’Info’ Abbildung 3.18: Kontext-Men¨u der Komponente ’Volume Filter’ mit dem Eintrag ’Set scale’ Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 12
  • 15. Als User kann man aber auch ein ’Empty GameObject’ erstellen und diesem ¨uber das Men¨u ’Component’ einen ’Volume Filter’ hinzuf¨ugen (siehe Abbildung 3.19). Dasselbe ist auch ¨uber den Knopf ’Add Component’ in der Inspector-View des ’Empty GameObjects’ m¨oglich (siehe Abbildung 3.20). Pro GameObject kann aber nur ein ’Volume Filter’ verwendet werden (siehe Abbildung 3.21). Abbildung 3.19: Eintrag ’Volume Filter’ im Men¨u Component Abbildung 3.20: Eintrag ’Volume Filter’ in der Komponenten-Maske der Inspector-View Abbildung 3.21: Meldung ’Invalid Operation’ f¨ur das mehrfache Hinzuf¨ugen eines ’Volume Filter’ Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 13
  • 16. 3.5 Die Komponente Region of Interest Dem GameObject ’Region of Interest’ wir automatisch eine Komponente mit demselben Namen hinzugef¨ugt. Die Komponente ’Region of Interest’ kann nicht editiert werden – sie ist lediglich Zust¨andig f¨ur das Einschr¨anken des Editierens der Transform-Komponente sowie f¨ur das Laden der Werte aus der Transform-Komponente auf den Volumen-Shader (siehe Abbildung 3.22). Nat¨urlich ist der Gebrauch der Komponente nur sinnvoll als Child-Objekt eines GameObjects mit Komponente ’Volume Filter’ sowie in Kombination mit einem Volumen-Material resp. eines Volumen-Shaders. Abbildung 3.22: Inspector-View der Komponente ’Region of Interest’ Als User kann man aber auch ein ’Empty GameObject’ erstellen diesem und ¨uber das Men¨u ’Component’ eine Region of Interest hinzuf¨ugen (siehe Abbildung 3.23). Dasselbe ist auch ¨uber den Knopf ’Add Component’ in der Inspector-View des ’Empty GameObjects’ m¨oglich (siehe Abbildung 3.24). Pro GameObject kann aber nur eine Region of Interest verwendet werden (siehe Abbildung 3.25). Abbildung 3.23: Eintrag ’Region of Interest’ im Men¨u Component Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 14
  • 17. Abbildung 3.24: Eintrag ’Volume Filter’ in der Komponenten-Maske der Inspector-View Abbildung 3.25: Meldung ’Invalid Operation’ f¨ur das mehrfache Hinzuf¨ugen einer Region of Interest Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 15
  • 18. 3.6 Rendermethode und Transferfunktion Das Rendern der Volumengrafik als GameObject erfolgt ¨uber den in Unity ¨ublichen Workflow mit einem Material und der Wahl eines Shaders. Das Material kann vom Benutzer kopiert, editiert und gespeichert werden. Per default wird ein Material namens ’Default-Volume’ aus den Ressources-Assets des Plug-ins verwendet (siehe Abbildung 3.26). Abbildung 3.26: Inspector-View des Materials ’Default-Volume’ mit einer Auswahl von Volumen-Shader Die Volumengrafik wird mit einen Raycaster als Rendermethode berechnet. Die dazu ben¨otigte Transferfunktion kann im Material-Editor festgelegt werden. Dazu stehen folgende Shader-Varianten zur Verf¨ugung: ˆ Transferfunction Texture: Eine Texture2D als Transferfunktion, im Sinne einer Lookup-Tabelle (LUT). ˆ Transferfunction Colors: Eine Liste von editierbaren Farben als Transferfunktion. Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 16
  • 19. 3.6.1 Textur als Transferfunktion Das Material ’Default-Volume’ verwendet eine Texture2D als Lookup-Tabelle (LUT). Dabei handelt es sich um eine 255 x 1 Pixel grosse Textur mit den drei Farbkan¨alen rot, gr¨un und blau (RGB) sowie einem Alpha-Kanal (siehe Abbildung 3.27). In den Material-Assets des Plug-ins sind zudem Texture- und Material-Templates zu finden, so z.B. die 2D-Textur ’Template-TF-LUT-SLProject’. Diese wird im Material ’Template-TF-LUT-SLProject’ verwendet (siehe Abbildung 3.28). Abbildung 3.27: Inspector-View der Texturen ’Default-TF-LUT’ und ’Template-TF-LUT-SLProject’ Abbildung 3.28: Inspector-View des Materials ’Template-TF-LUT-SLProject’ Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 17
  • 20. 3.6.2 Liste von Farben als Transferfunktion Mit einer weiteren Komponente ’Transferfunction Color Array’ kann die 2D-Textur, welche als LUT verwendet wird, editiert werden (siehe Abbildung 3.29). Hinzugef¨ugt wird die Komponente ¨uber das Men¨u ’Component > Volume > TF Color Array’ oder aber ¨uber den Knopf ’Add Component > Volume > TF Color Array’ in der Inspector-View eines GameObjects. Auch hier gilt: Pro GameObject kann nur eine Komponente dieses Typs verwendet werden. Abbildung 3.29: Die Komponente ’Transferfunction Color Array’ Das Plug-in stellt mit einer Color Preset Library namens ’TF-Colors’ vorparametrisierte Farben zur Verf¨ugung (siehe Abbildung 3.30). Diese k¨onnen im Farbeditor ¨uber ein Flyout aufgerufen und angezeigt werden (siehe Abbil- dung 3.31). Abbildung 3.30: Inspector-View der Color Preset Library ’TF-Colors’ Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 18
  • 21. Abbildung 3.31: Color-Editor mit Preset-Library und Color-Editor-Flyout zur Wahl einer Preset-Library 3.7 Benutzerhandbuch Dieses Benutzerhandbuch ist im Unity-Package auch als PDF-Datei vorhanden und kann ¨uber das Hilfe-Men¨u aufgerufen werden (siehe Abbildung 3.32). Abbildung 3.32: Men¨u ’Help’ mit dem Eintrag cpvrLab VolumeRendering Manual Unity®Volume Rendering – Benutzerhandbuch, Version 1.0, 16. Juni 2016 19