Computer Graphics - Cheatsheet
Raytracing und Rasterization
Definition:
Raytracing und Rasterization sind zwei grundlegende Render-Techniken in der Computergrafik: Raytracing simuliert Lichtstrahlen um realistische Bilder zu erzeugen, während Rasterization Objekte als Raster- oder Pixelbilder darstellt.
Details:
- Raytracing Berechnung: verfolgt Lichtstrahlen vom Betrachter durch jeden Pixel in einer Szene und simuliert Interaktionen mit Objekten.
- Vorteile Raytracing: realistische Darstellung von Reflexionen, Brechungen und Schatten.
- Nachteile Raytracing: hohe Rechenleistung und langsame Berechnung.
- Rasterization Berechnung: wandelt geometrische Modelle in Pixel um, die auf dem Bildschirm gezeichnet werden.
- Vorteile Rasterization: schnelle Berechnung und weit verbreitet in Echtzeit-Anwendungen wie Spielen.
- Nachteile Rasterization: weniger realistische Reflexionen und Schatten im Vergleich zu Raytracing.
Licht- und Schatteneffekte
Definition:
Beleuchtung und Schatten sind entscheidend für die realistische Darstellung von 3D-Szenen in der Computergrafik.
Details:
- Phong-Beleuchtungsmodell: Kombination aus Umgebungs-, Diffus- und Spekularbeleuchtung
- Ambient Light (\textit{Umgebungslicht}): Gleichmäßige Grundbeleuchtung
- Diffuse Light (\textit{Diffuslicht}): Lichtstreuung je nach Oberflächenorientierung
- Specular Light (\textit{Spiegellicht}): Lichtreflexionen auf glänzenden Oberflächen
- Schattenwurf: Schattenvolumina, Schattenkarten (\textit{Shadow Maps})
- Gouraud- vs. Phong-Shading: Interpolation von Farben vs. Interpolation von Normalen
- Radiosity: Globales Beleuchtungsmodell für diffuse Wechselwirkungen
- Raytracing: Verfolgen von Lichtstrahlen zur Berechnung von Schatten, Reflexionen und Brechungen
Inverse Kinematik und Rigging
Definition:
Inverse Kinematik und Rigging - Techniken zur Manipulation von 3D-Modellen für präzise Bewegungssteuerung und Animation.
Details:
- Inverse Kinematik (IK): Berechne Gelenkwinkel, um eine Endeffektor-Position zu erreichen.
- IK-Problem: Finde \(\theta_1, \theta_2, \theta_3, ..., \theta_n\), sodass Endeffektor-Position und -Ausrichtung erfüllt sind.
- IK-Lösungen mithilfe von Jacobian-Matrix oder CCD (Cyclic Coordinate Descent).
- Rigging: Erstelle ein Skelett (Rig) für das 3D-Modell.
- Setze Bones (Knochen) und Joints (Gelenke) innerhalb des Modells zur realistischen Bewegung.
- Skinning: Verknüpfe Modellgeometrie mit Rig-Bewegung.
- Gewichtsmalen: Bestimme Einflussbereiche (Gewichte) der Bones auf die Geometrie.
Voronoi-Diagramme und Delaunay-Triangulation
Definition:
Voronoi-Diagramme teilen den Raum in Regionen auf, wobei jede Region alle Punkte enthält, die einem bestimmten Punkt am nächsten sind. Delaunay-Triangulation ist eine Triangulation solcher Punkte, bei der keine Punkte innerhalb des Umkreises eines Dreiecks liegen.
Details:
- Voronoi-Diagramme: Menge von Punkten \(P\) in der Ebene -> Partition der Ebene in Regionen \(R_i\), wobei jeder Punkt in \(R_i\) näher an \(P_i\) als an jedem anderen Punkt liegt.
- Delaunay-Triangulation: Menge von Dreiecken \(C\) für Punkte \(P\), sodass kein Punkt von \(P\) innerhalb des Umkreises eines Dreiecks liegt.
- Beziehungen: Dualität zwischen Voronoi-Diagramm und Delaunay-Triangulation - Zentren der Umkreise der Delaunay-Dreiecke bilden die Kanten des Voronoi-Diagramms.
- Anwendungen: Computergrafik, Geometrische Modellierung, Pathfinding, Mesh-Generierung.
Physiksimulationen für realistische Bewegungen
Definition:
Simulation der physischen Welt zur Nachbildung realistischer Bewegungen und Interaktionen. Wichtig in Computer-Grafik für Animation und Virtual Reality.
Details:
- Newton'sche Gesetze: Bewegungsgleichungen zur Beschreibung von Kräften und Bewegungen
- Eulerintegration: Methode zur numerischen Lösung der Bewegungsgleichungen
- Verwende Dämpfung zur Simulation realer Materialeigenschaften
- Kollisionserkennung und -behandlung: Algorithmen zur Bestimmung von Kollisionen und Reaktion darauf
- Federmodell: Simulation elastischer Objekte durch Massen und Federn
- Fluidsimulation: Berechnung der Bewegung von Flüssigkeiten mittels Navier-Stokes-Gleichungen
- Rigid Body Dynamics: Bewegung starrer Körper unter Krafteinwirkung
- Soft Body Dynamics: Simulation weicher, verformbarer Objekte
Vertex- und Fragment-Shader
Definition:
Vertex-Shader verarbeitet Scheitelpunkte von Polygonen und berechnet deren Position im Raum. Fragment-Shader berechnet die Farbwerte einzelner Pixel.
Details:
- Vertex-Shader transformiert Scheitelpunkte mit Matrizen (z.B. Model-View-Projection)
- Gibt weiter an Fragment-Shader
- Fragment-Shader verarbeitet Fragmente/Pixels
- Kann Texturen und Beleuchtung anwenden
- Beide Shader werden in GLSL geschrieben
- Wichtig für GPU-beschleunigtes Rendering
Datenstrukturen für 3D-Modelle
Definition:
Strukturen zur effizienten Speicherung, Verwaltung und Darstellung von 3D-Geometriedaten.
Details:
- Polygonale Netze: Sammlung von Polygonen (normalerweise Dreiecken), die ein Objekt approximieren.
- Vertex Buffer Object (VBO): Grafikspeicher, der Vertex-Daten speichert und den langsamen Austausch zwischen CPU und GPU reduziert.
- Indexed Mesh: Verwendung von Indizes zur Einsparung redundanter Eckpunkt-Daten.
- Bounding Volume Hierarchies (BVH): Hierarchische Anordnung von geometrischen Formen zur effizienten Kollisionserkennung und Sichtbarkeitsprüfung.
- Oktree: Raumanordnung zur effizienten Verwaltung von 3D-Punkten, -Linien und -Volumen.
- Scene Graph: Baumstruktur zur Darstellung der hierarchischen Beziehung zwischen 3D-Objekten einer Szene.
- NURBS (Nicht-uniforme rationale B-Splines): Mathematische Repräsentation zur genauen Modellierung geschwungener Oberflächen.
- Voxelgitter: 3D-Gitterdarstellung, die den Raum in kleine Würfel (Voxels) unterteilt.
Antialiasing-Methoden
Definition:
Techniken zur Verringerung von Treppeneffekten und Glättung von Kanten in gerenderten Bildern.
Details:
- Supersampling: Erhöhen der Abtastrate und anschließendes Herunterskalieren.
- Multisampling: Abtastung an mehreren Punkten pro Pixel, aber nur eine Farbberechnung.
- Fast Approximate Anti-Aliasing (FXAA): Post-Processing-Filter zur Glättung.
- Temporal Anti-Aliasing (TAA): Nutzung vorheriger Frames zur Glättung.
- Formel für die Gewichtung von Pixeln: \(I = \sum_{i=1}^n w_i \cdot I_i \), wobei \(w_i\) die Gewichte und \(I_i\) die Intensitäten sind.