Direct Volume Visualization on GPU Flashcards
Was ist bei der Rasterization Pipeline gegeben?
Vertex Stream mit per-vertex-Attributen (Position, Farbe und Alphawert und Texturkoordinaten)
Was passiert im Geometry Subsystem der Rasterization Pipeline?
- Anwenden der Modell-, Ansichts- und Projektionstransformationen
- Anwenden der per-vertex Bleuchtung
Was passiert im Raster Subsystem der Rasterization Pipeline?
- Definiere Pixel pro Dreieck
- Interpoliere Pixel Attribute
- Auslesen der Texturkoordinaten
- Compositing
Was ist ein Frame-Buffer Object (FBO)?
Speicher auf der GPU, der per-pixel Informationen zur Wiederverwendung als Eingabe-Texturen für die composition in einem Ergebnisbild eines späteren Rendering Durchgangs speichert
Was ist das Problem beim Texture-based Raycasting?
Die Rasterisierungshardware unterstützt keine volumetrischen Primitive, sondern nur Polygone wie z.B. Dreiecke
Was ist Data Classification by Transferfunctions?
- Classification: User bestimmt das Aussehen der volumetrischen Daten (Transparente Bereiche, Farben der sichtbaren Regionen)
- User spezifiziert die Transferfunction
Wofür brauchen wir lokale Beleuchtung für volume raycasting?
- Zur Erhöhung der Tiefenwahrnehmung
- Zur Erhöhung der Wahrnehmung von Oberflächen
Welche Arten von Lichtquellen gibt es?
- Directional light
- Point light
- Spot light
Wie berechnet man die Oberflächennormale für volumetrische Daten?
Man verwendet den Normalenvektor der Isoplane an der sampling position -> Gradientenvektor
Wie lautet das Grundprinzip fürs Shading mit texturbasierten Methoden?
- Vorberechnung des Gradientenvektors in jedem Voxel
- Normalisiere den Gradientenvektor und speichere ihn in einer zusätzlichen (Multi-)Textur
Was ist eine Alternative zur Local Illumination?
Reflection Mapping mit komplexen Beleuchtungsumgebungen unter Verwendung von Cube Maps
Welches Problem hat man mit volumetrischen Daten auf der GPU und was kann man dagegen tun?
- Die volumetrischen Daten passen nicht immer in den Speicher der GPU
- Zerteile die Daten in kleinere Subvolumes (bricks) und rendere diese nach dem raycasting Ansatz front-to-back oder back-to-front -> Bricking
- Bandwidth Problem: Daten müssen für jeden Frame zur GPU transferiert werden -> Schlechte Nutzung GPU und Bus