VisExercises

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(width, height, depth,
                                 LGL_INTENSITY,
                                 data);


2. 3D Schicht:

VIS-YPlane

Zeichnen Sie nun eine horizontale Schicht durch den Urspung analog zur Vorlesung.


3. MPR:

VIS-MPR

Realisieren Sie eine einfache MPR Darstellung mit drei achsenparallelen Schichten.


4. Thresholding:

VIS-MPRa

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 innere Skalarwert sei 0.75, die restlichen seien 0 bis auf einen mit 1.

  • 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.5 mit einer Kante (beliebig). Verwenden Sie dazu lineare Interpolation (Formel).
  • Zeichnen Sie die Isokontur zum Isowert 0.5.
  • Zeichnen Sie den Level-Set zu den Isowerten 0.25, 0.5 und 0.75.
  • Zeichnen Sie eine dazu passende Transferfunktion.

Options: