Grafikpipeline Flashcards
zwei Arten von VR
nicht-immersive Umgebungen:
- Bildschirm und zeigerbasiert
- 3D-Anzeige, evtl. haptisches Feedback
immersive Umgebungen:
- es wird ein Eindruck erweckt, tatsächlich in einer Welt aus virtuellen Objekten zu sein
VR-Ausgabegeräte
Head Mounted Display (HMD)
Spatial Immersive Display (SID)
Cave Automated Virtual Environment (CAVE)
Head-Movement-Tracking-Systeme
Augmented Reality (AR)
Integration zwischen virtuellen und realen
Objekten. Die Wahrnehmung des Benutzers soll so erweitert und verbessert werden.
Virtual Reality (VR)
soll Menschen in virtuelle Welten eintauchen lassen
Kriterien für AR Umgebungen
virtuelle Informationen sollten relevant und synchron mit der echten Welt sein
AR - Ein- und Ausgabegeräte
Heads Up Displays (HUD)
Computergrafik vs. Computer Vision
Computergrafik erzeugt das Bild
Computer Vision hinterfragt, wie es erzeugt wurde
The “uncanny valley”
Eine hypothetische Beziehung zwischen dem Grad der Ähnlichkeit eines Objekts mit einem Menschen und der emotionalen Reaktion auf ein solches Objekt
Computergrafik - Prozess
3D Objekte –> 3D Modelle –> 2D Bilder
oder
Grafikpipeline: Anwendung
Anwendung (CPU) —> Geometrieverarbeitung (GPU) -> Rasterisierung (GPU) —–> Ausgabe
Repräsentation (Anzeigen) von 3D Daten - grafische Primitve
Primitive Punkte
Primitive Linien
Primitive Dreiecke
Hüllkörper
Hüllkörper müssen einfach sein
Schnitttests mit anderen Primitiven müssen sich einfach berechnen lassen
z.B. Kugel-, Bounding Box- oder Orientierte Form
Raumunterteilung
Achenparallele Gitter
- einfach
- Objekt ist in mehreren Zellen enthalten
- kann sich der Geometrie nicht anpassen
- sehr Speicheraufwendig
- effizient traversierbar
- schneller Zugriff auf Nachbarn möglich
- Volumen Darstellung
Raumunterteilung (Binary Space Partition BSP)
Raum wird binär unterteilt
jeder Knoten entspricht einer Unterteilungsebene, welche den Raum in zwei Halbräume unterteilt
man teilt an den durch Polygone induzierten Ebenen
Kanonische Position und Orientierung
Sichtvolumen wird nach dem Koordinatensystem ausgerichtet
Ziel:
Einheitliches Sichtvolumen für die nachfolgenden Algorithmen
Beispiel:
(davor) Kamera ist im Koordinatensystem Nordöstlich gerichtet
(danach) Kamera ist im Koordiantensystem auf der x Achse östlich ausgerichtet
Beleuchtung eines Primitives
Flat Shading:
Gouraud Shading
Phong Shading
Flat Shading
Normale des Primitivs ergibt einheitliche Helligkeit
Gouraud Shafing
Normale in den Eckpunkten ergibt Helligkeitswerte für die Eckpunkte
Helligkeitswerte der Eckpunkte werden linear interpoliert
Phong Shading
Ecpunkt-Normalen werden für jeden Punkt linear interpoliert und normiert
Helligkeitswert ergibt sich aus interpolierter Normale
SIchtbarkeit
Sichtbar ist der dem Auge am nächsten liegende Punkt
ist das Objekt transparent, wird der dahinterliegende Punkt auch sichtbar
Clipping: Abschneiden von Objekten am Rand eines gewünschten Bildschirmausschnittes
Painters Algorithmus
- sortiere Polygone nach z-Wert
- falls z-Intervalle überlappen müssen Schnittpolygone berechnet werden
- beginne das Zeichnen mit dem Polygon mit größtem z-Wert
Culling
Verdeckungsrechnung im Objektraum
Rückseiten werden von der weiteren Betrachtung ausgeschlossen
bei kovexen Körpern sind alle verdeckten Flächen Rückseiten
z-Buffer Algorithmus
Für jeden Punkt (x,y) eines darzustellenden Polygons wird z(x,y)
berechnet. Falls z(x,y) kleiner ist als der bereits gespeicherte Wert,
schreibe z(x,y) in den z-Speicher und den zugehörigen Farbwert an der
Stelle (x,y) in den Bildspeicher
Nachdem alle Objekte behandelt wurden steht im Bildspeicher das
gewünschte Bild der sichtbaren (Teil-)flächen.
Nachteile z-Buffer Algorithmus
Pro Bildpunkt wird nur ein Objekt gespeichert
Transparenz ist prinzipiell nicht realisierbar
die Genauigkeit des z-Buffers ist beschränkt
Vorteile z-Buffer Algorithmus
jede Szene kann behandelt werden
es können nachträglich Objekte eingefügt werden
leicht in Hardware zu realisieren
Komplexität unabhängig von der Tiefenkomplexität
Darstellung spezieller Objekte mit korrekter Verdeckung
Clipping
Abschneiden von Objekten am Rand eines gewünschten Bildschirmausschnittes
Standardhüllkörper
- Kugel
- Achsenparallele Bounding Box
- orientierte Bounding Box
Painter’s Algorithmus
1) Sortiere die Polygone nach z-Wert
2) falls sich z-Intervalle überlappen müssen Schnittpolygone berechnet werden
3) beginne das Zeichnen der Polygone mit dem größten z-Wert
Wieso ist der Painter’s Algorithmus nötig?
um die Überlappung von Objekten in der Szene korrekt darzustellen