VisExercises

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:

VIS-YPlane

Binden Sie nun die 3D-Textur und zeichnen Sie eine horizontale Schicht durch den Urspung.


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. Blending:

MIP

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.


6. Interaktion (dringend 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 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.

Options: