VIS Exercise #08
Visualisierung Übungsblatt #08
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 GL (bzw. mit LGL) 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. Transparency (Optional):
Zeichnen Sie ein semi-transparentes Histogram
lglBlendMode(LGL_BLEND_ALPHA);
6. Blending:
Verwenden Sie zum Erzielen einer MIP Maximum-Blending:
glBlendFunc(GL_ONE,GL_ONE);
glBlendEquation(GL_MAX_EXT);
glEnable(GL_BLEND);
Dokumentieren Sie den Unterschied abschließend mit einem Screenshot.
7. Interaktion (durchaus empfohlen ;-):
Ü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 linke Maustaste gedrückt ist (rechte 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 (rot), 0.2 (grün) und 0.4 (blau).
- Zeichnen Sie eine dazu passende Transferfunktion (ebenfalls farblich).





