Grafik-Praktikum Game Programming - Cheatsheet.pdf

Grafik-Praktikum Game Programming - Cheatsheet
Grafik-Praktikum Game Programming - Cheatsheet Grundlagen der Geometrie und Transformationen Definition: Grundlegende Prinzipien der Geometrie und deren Anwendung auf Transformationen in der Grafikprogrammierung. Details: Kartesisches Koordinatensystem: 2D (\textit{x, y}), 3D (\textit{x, y, z}) Vektoren: Addition, Subtraktion, Skalarmultiplikation Punkte: Position im Raum Matrizen: 2x2, 3x3, 4x4 f...

© StudySmarter 2024, all rights reserved.

Grafik-Praktikum Game Programming - Cheatsheet

Grundlagen der Geometrie und Transformationen

Definition:

Grundlegende Prinzipien der Geometrie und deren Anwendung auf Transformationen in der Grafikprogrammierung.

Details:

  • Kartesisches Koordinatensystem: 2D (\textit{x, y}), 3D (\textit{x, y, z})
  • Vektoren: Addition, Subtraktion, Skalarmultiplikation
  • Punkte: Position im Raum
  • Matrizen: 2x2, 3x3, 4x4 für 2D und 3D Transformationen
  • Transformationen: Translation (\textit{Verschiebung}), Rotation, Skalierung
  • Homogene Koordinaten: Verwendung von 4x4 Matrizen in 3D
  • Affine Transformationen: Kombination von Translation, Rotation und Skalierung
  • Projektive Transformationen: Perspektivische Verzerrung
  • Matrizenmultiplikation: Sequenz von Transformationen
  • Eigenwerte und Eigenvektoren: Wichtige Eigenschaften von Transformationen

Rasterung und Rendering-Techniken

Definition:

Umwandlung von Vektorgrafik in Rastergrafik (Bildpunkte). Rendering erstellt das finale Bild basierend auf Szene und Beleuchtung.

Details:

  • Rasterung: Diskretisierung geometrischer Daten zu Bildpunkten.
  • Rendering: Erzeugt Bilder aus Szenenbeschreibungen.
  • Wichtige Techniken: Raytracing, Rasterization, Radiosity.
  • Raytracing: Verfolgt Lichtstrahlen, um realistische Bilder zu erzeugen.
  • Rasterization: Wandelt Dreiecke in Pixel um.
  • Shader: Programme, die Beleuchtung und Farbgebung bestimmen.
  • Pipeline: Vertex- und Fragment-Shader-Stufen.

Shader-Sprachen: GLSL und HLSL

Definition:

Shader-Sprachen werden verwendet, um Grafikprozessoren (GPUs) anzusteuern, um spezialisierte Grafik- und Bildverarbeitungsaufgaben zu erfüllen.

Details:

  • GLSL (OpenGL Shading Language): Hauptsächlich in OpenGL verwendet. Basiert auf der C-Programmiersprache. Dateiendungen: .vert (Vertex-Shader), .frag (Fragment-Shader).
  • HLSL (High-Level Shading Language): Hauptsächlich in DirectX verwendet. Basiert auf der C-Programmiersprache. Dateiendungen: .hlsl oder .fx.
  • GLSL wird in einem Quelltext direkt an die GPU gesendet, um kompiliert zu werden.
  • HLSL wird vorab kompiliert und die Binärdateien werden an die GPU gesendet.
  • Beide Sprachen bieten Ähnlichkeiten bei der Syntax und Funktionalität, unterscheiden sich jedoch in API-Spezifika.
  • Shader-Typen in beiden Sprachen: Vertex-Shader, Fragment/Pixel-Shader, Geometry-Shader, Tessellation-Shader, Compute-Shader.

Licht- und Schattenberechnung

Definition:

Berechnung von Beleuchtung und Schatten in der Computergrafik.

Details:

  • Beleuchtungsmodelle: Phong, Blinn-Phong
  • Lichtquellen: Punktlichter, gerichtete Lichter, Umgebungslichter
  • Shading-Techniken: Flat Shading, Gouraud Shading, Phong Shading
  • Schattenberechnung: Shadow Mapping, Shadow Volumes
  • Formeln: Diffuse Komponente: \(I_d = k_d (L \bullet N)\), Spekular Komponente: \(I_s = k_s (R \bullet V)^n\)
  • Umgang mit Self-Shadowing und Schatten-Aktionen
  • Performance-Optimierung durch Precomputing und Level-of-Detail

Kollisionserkennungstechniken wie AABB und OBB

Definition:

Kollisionserkennungstechniken verwenden, um festzustellen, ob und wann Objekte in einer Spielszene kollidieren.

Details:

  • AABB (Axis-Aligned Bounding Box): Einfache Kollisionserkennung, Boxen sind an den Achsen ausgerichtet. Effizient, aber nicht immer präzise.
  • OBB (Oriented Bounding Box): Kollisionserkennung mit gedrehten Boxen. Präziser als AABB, aber aufwendiger zu berechnen.
  • AABB-Kollisionstest: Überprüfen, ob sich die Projektionen der Boxen auf jeder Achse überlappen
  • OBB-Kollisionstest: Trennen der Achs-Theorem (Separating Axis Theorem, SAT) verwenden, um zu überprüfen, ob es eine trennende Achse gibt.

Integration von Grafik- und Physik-Engines

Definition:

Integration von Grafik- und Physik-Engines in der Spieleentwicklung zur Erzeugung realistischer Szenarien

Details:

  • Synchronisation von Grafik und Physik notwendig für realistische Bewegung und Kollision
  • Simulation der Physik-Engine mit festen Zeitintervallen (\textit{fixed timestep}), z.B. \texttt{dt = 0.02s}
  • Interpolation zwischen den Render-Frames für flüssige Animation (\texttt{Alpha} Interpolation)
  • Mathematische Modellierung von Kräften und Bewegung: Newtons Gesetze
  • Collision Detection und Collision Response: Berechnung von Kontaktpunkten und Reaktionen
  • Datenstrukturen: Spatial Partitioning, Bounding Volume Hierarchies (BVH)

Szenenmanagement und Entity-Component-Systeme

Definition:

Verwaltung von Szenen und Entitäten in Spielen. Beide Systeme helfen bei der Strukturierung und Verwaltung von Spiellogik und -ressourcen.

Details:

  • Szenenmanagement: Szenen repräsentieren verschiedene Zustände oder Levels im Spiel (z.B. Menü, Spielwelt).
  • Szenenwechsel wird durch das Aufrufen von Methoden oder Ereignissen behandelt.
  • Organisiert Ressourcen, Logik und Rendering von Spielobjekten innerhalb einer Szene.
  • Entity-Component-System (ECS): Entitäten sind eindeutige Identifikatoren für Objekte im Spiel.
  • Komponenten enthalten Daten und keine Logik, die von Entitäten genutzt werden.
  • Systeme enthalten die Logik und operieren auf Entitäten, die bestimmte Komponenten besitzen.
  • Fördert Wiederverwendbarkeit und modulare Struktur.

Multiplattformentwicklung und Performance-Optimierung

Definition:

Entwicklung von Software, die auf mehreren Plattformen läuft und deren Leistung optimiert wird.

Details:

  • Plattformen: PC, Konsole, Mobile
  • Frameworks/Tools: Unity, Unreal Engine
  • Plattformabhängige API-Anpassungen
  • Optimierungstechniken: Profiling, Caching, Parallelisierung
  • Verwendung von plattformunabhängigen Bibliotheken
  • Speicher- und Laufzeitoptimierungen
  • Beachten von Besonderheiten und Einschränkungen der Zielplattformen
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden