VIS Exercise #03
Visualisierung Ãœbungsblatt #03
Medical 3D Data: 3D Texturing & MPR
1. 3D Texturen:
Starten Sie mit dem Wireframe-Würfel aus der letzten Übung. Laden Sie die Volumendaten in ein 3D-Textur-Objekt. Verwenden Sie lglCreateTexmap3D
, was Ihnen eine entsprechende Textur-Objekt Id liefert, wie folgt:
GLuint texid = lglCreateTexmap3D(v_width, v_height, v_depth, LGL_INTENSITY, v_data);
Wenn ein 3D-Textur-Objekt erzeugt werden konnte, dann ist die texid != 0.
2. 3D Schicht:
Binden Sie nun die 3D-Textur und zeichnen Sie eine horizontale Schicht durch den Urspung.
3. MPR:
Realisieren Sie eine einfache MPR Darstellung mit drei achsenparallelen Schichten.
4. Thresholding:
Verwenden Sie einen Alpha-Test, um Skalarwerte, die nahezu 0 sind, auszublenden:
lglAlphaTest(true, 0.05);
Dokumentieren Sie den Unterschied abschließend mit einem Screenshot.
5. Interaktion (optional):
Ãœberladen Sie die Methode mouseMoveEvent(QMouseEvent *event)
der QLGLWindow Klasse, greifen Sie in der Event-Struktur die X- und Y-Koordinaten der Maus ab und verändern Sie damit die Positionen der Schichten der MPR-Darstellung entsprechend, wenn die rechte Maustaste gedrückt ist (linke Maustaste rotiert).
Hausaufgaben:
Ein reguläres Gitter mit 3×3 Gitterpunkten enthalte Skalarwerte im normalisierten Bereich von 0–1. Der mittlere Skalarwert des Gitters sei 0.8, die restlichen seien 0 bis auf einen mit 1.
- Skizzieren Sie das Gitter und tragen Sie die bekannten Größen ein!
- Berechnen Sie mit bilinearer Interpolation den Skalarwert in der Mitte einer Gitterzelle (beliebig).
- In welcher Stufe der Fixed-Function Graphics-Pipeline wird bilinear interpoliert?
- In welcher Stufe der Programmable Graphics-Pipeline wird baryzentrisch interpoliert?
- Berechnen Sie den Schnittpunkt der Isokontur zum Isowert 0.4 mit einer Kante (beliebig). Verwenden Sie dazu lineare Interpolation (Formel).
- Zeichnen Sie die Isokontur zum Isowert 0.4.
- Skizzieren Sie den Level-Set zu den Isowerten 0.1, 0.2 und 0.4.
- Zeichnen Sie eine dazu passende Transferfunktion.