Computer Graphics - Cheatsheet
Grundlagen der 3D-Geometrie
Definition:
Grundlagen der 3D-Geometrie ermöglichen die Darstellung und Bearbeitung von Objekten in einem dreidimensionalen Raum.
Details:
- Kartesisches Koordinatensystem: \(x, y, z\)
- Vektoren: Position (P) und Richtungsvektoren (u, v, w)
- Matrixoperationen: Translation, Rotation, Skalierung
- Transformationsmatrizen: \(4 \times 4\) homogener Koordinaten
- Kameramodell: View-Matrix, Projektions-Matrix
- Perspektivische vs. orthogonale Projektion
- Normalenvektoren für Beleuchtung und Schattierung
Raytracing und Rasterisierung
Definition:
Raytracing: Bildberechnung durch Strahlenverfolgung. Rasterisierung: Bilddarstellung durch Zerlegen der Szene in Pixel.
Details:
- Raytracing:
- Modelliert Lichtpfade: Reflektion, Brechung, Schatten.
- Realistische Darstellung, hohe Rechenleistung.
- Grundidee: Verfolge Lichtstrahlen von Kamera zu Lichtquelle.
- Formel für Strahlenparameter: \( \mathbf{P}(t) = \mathbf{O} + t \cdot \mathbf{D} \)
- Rasterisierung:
- Zerlegt Szene in Dreiecke/Pixel.
- Schnell, weniger realistische Lichtberechnung.
- Pipeline-Stufen: Vertex-Transformation, Rasterisierung, Fragment-Shading.
- Formel für Perspektivprojektion: \( x' = \frac{x}{z}, \, y' = \frac{y}{z} \)
Transformationen und Projektionen
Definition:
Transformationen und Projektionen sind grundlegende Operationen in der Computergrafik, um Objekte im Raum zu positionieren und auf eine Ansichtsebene abzubilden.
Details:
- Transformationen ändern die Position, Orientierung oder Größe eines Objekts.
- Projektionen konvertieren 3D-Punkte in 2D-Koordinaten für die Darstellung auf dem Bildschirm.
- Wichtige Transformationen: Translation (\textbf{T}), Rotation (\textbf{R}), Skalierung (\textbf{S}).
- Homogene Koordinaten: Darstellung von Transformationsmatrizen in \textbf{4x4}-Form für effizientere Berechnungen.
- Projektionsarten: \textbf{Parallelprojektion}, \textbf{Perspektivprojektion}.
- Parallelprojektion: Orthogonal (\textbf{isometrisch}, \textbf{kavalier})
- Perspektivprojektion: \textbf{Sichtvolumen} durch \textbf{Frustum}
Shader-Programmierung (GLSL und HLSL)
Definition:
Shader sind Programme, die auf der GPU ausgeführt werden und für die Berechnung der Grafikpipeline verwendet werden.
Details:
- GLSL (OpenGL Shading Language): Hochsprachen-Shader für die OpenGL API.
- HLSL (High-Level Shading Language): Hochsprachen-Shader für die DirectX API.
- Typen von Shadern: Vertex-Shader, Fragment-Shader, Geometry-Shader, Tessellation-Shader, Compute-Shader.
- GLSL Grundsyntax:
void main() { // Shader Code}
- HLSL Grundsyntax:
float4 main() : SV_Target { // Shader Code}
- Kommunikation: Uniforms für konstante Werte, Attribute für Eingaben.
- Matrizenoperationen:
mat4 modelMatrix; vec4 worldPosition = modelMatrix * localPosition;
Kollisionserkennung
Definition:
Kollisionserkennung prüft, ob und wann Objekte in einer Szene aufeinander treffen.
Details:
- Wichtig in Echtzeitsystemen und Simulationen.
- Grundlegende Techniken: \textbf{Bounding Volumes} (z.B. Bounding Box, Bounding Sphere) und \textbf{hierarchische Strukturen} (z.B. Bounding Volume Hierarchy, kD-Baum).
- \textbf{Broad Phase}: Erste grobe Prüfung zur Einschränkung der möglichen Kollisionen.
- \textbf{Narrow Phase}: Präzise Kollisionserkennung zwischen Kandidatenpaaren.
- Zeitliche Kohärenz oft genutzt, um die Effizienz zu erhöhen.
Skeletalanimation
Definition:
Technik zur Animation von 3D-Modellen mittels eines Skeletts bestehend aus Knochen und Gelenken.
Details:
- Skelett besteht aus einer Hierarchie von Knochen
- Transformationen (Translation, Rotation, Skalierung) an Knochen
- Vertex-Gewichtung für Hautdurchsetzung (Skinning)
- IK und FK zur Bewegungssteuerung
- Animationen durch Keyframes gespeichert
- Anwendung in Games, Filmen, VR
Licht- und Schattenberechnung
Definition:
Berechnung von Licht und Schatten in 3D-Szenen zur Erzielung realistischer Bilder.
Details:
- Lichtquellen: Punktlicht, Richtungslicht, Spotlicht
- Lambert'sches Cosinusgesetz: \ I = I_k \cdot \max(0, \vec{L} \cdot \vec{N}) \cdot k_d
- Blinn-Phong Beleuchtungsmodell: \ I = I_k( k_a + k_d \cdot \max(0, \vec{L} \cdot \vec{N}) + k_s \cdot \max(0, \vec{R} \cdot \vec{V})^n )
- Schatten: Schattenvolumen, Shadow Mapping
Physikbasierte Simulationen
Definition:
Physikbasierte Simulationen nutzen physikalische Gesetze zur Berechnung von Bewegungen und Interaktionen digitaler Objekte.
Details:
- Basis bilden oft Differentialgleichungen, z.B. Newtons Bewegungsgesetze
- Beispiele: Simulation von Flüssigkeiten, Festkörpern, Gasen
- Wichtige Konzepte: Kräfte, Impulse, Energieerhaltung
- Anwendung in Animation, Spiele, virtuelle Realität
- Typische Methoden: Finite Elemente Methode (FEM), Partikel-Systeme
- Erfordert numerische Integration (z.B. Euler, Runge-Kutta)
- Ziel: realistische und effiziente Simulation