Inhaltsübersicht: (Änderungen
u. Problembehandlung)
Asteroidenjagd im Weltraum –
Spieleprogrammierung für Minimalisten
Über
die Arbeit mit Visual C++
Entwurfsarbeit
Windows-Rahmenanwendung
eines Spiels (Game Shell)
Programmgerüst
eines Spiels
Funktionsweise
der Spielschleife (Game Loop)
Spielablauf
(Game Logic)
Grundlagen
von DirectX Graphics, DirectX Audio und DirectInput
Explosionsanimationen
Eine frei konfigurierbare Spielsteuerung
Hintergrundgestaltung
und Spielsteuerung in 2D-Spielen
2D-Objekte und Kameradrehungen im
3D-Raum
Einstieg in die 3D-Programmierung
Direct3D-Lichtquellen
und –Materialeigenschaften
Farb-,
Alphaoperationen und Multitexturing
Texturfilterung
Sonne
und Sonnenstrahlen
Lens
Flares
Indizierte
Dreieckslisten
Planeten
und Asteroiden
Sky-Sphären
und –Boxen
Dreidimensionale
Stoßprozesse (von Massenpunkten)
Kollisionserkennung
mithilfe von Bounding-Boxen
Explosionen
für Fortgeschrittene
3D-Modelle
Asteroiden
und Gesteinsbrocken modellieren
Dateimanagement
X-Dateien
laden und rendern
X-Dateien
in ein eigenes Modellformat konvertieren und speichern
3D-Modelle
im eigenen Modellformat laden und darstellen
Verschiedene
LOD-Stufen für ein 3D-Modell erzeugen
Kollisionserkennung
und Schnittpunktberechnung auf Dreiecks- und
Vierecksbasis
Portale
Einführung in die
HLSL-Shader-Programmierung
HLSL-Programme
als Effekt-Dateien in die eigene Anwendung einbinden
Einfachste
Vertextransformationen und einfachstes Texture Mapping
Verschiedene
Beleuchtungsmodelle und ihre Implementierung (diffuse
Reflexion, einfach-ambiente und
hemisphärisch-ambiente Reflexion,
spiegelnde Reflexion)
Per
Pixel Beleuchtung mit Dotproduct3 Bump Mapping (Normal Mapping)
Direktionale
und Punktlichtquellen
Shadow
Mapping (Schlagschatten und Soft Shadows)
Key
Frame- und Bone Frame-Animationen
Animationsskelette
(Dateiformate für die Beschreibung der Animationsskelette
und –posen, Ändern der Skelettproportionen,
Modellieren von
Animationsposen, Kinematik, Bewegungsgruppen, Gelenk- und
Gruppenhierarchien)
Übertragung
der Animationsposen auf 3D-Modelle
Indiziertes
Vertex Blending
Simulierte Physik
Das
Massenpunktmodell eines Körpers
Bestimmung
der Anfangsrotation eines Körpers
Translation
und Rotation eines Körpers
Bestimmung
der Orientierung eines Körpers
Bodenreibung,
Kontaktreibung, Newton-Reibung (z.B. Luftreibung), Auftrieb
und Schwimmen
Kollisionen
Weltraumgestaltung für
Fortgeschrittene
Aufbau
und Simulation eines Sonnensystems
Dateiformate
für die Beschreibung eines Sonnensystems
Ein
Bounding-Sphären-Sichtbarkeitstest
Objekte
im 3D-Raum mithilfe des Cursors selektieren
Planetenringe
Berechnung
der Normal Maps für die Beleuchtung der Planeten, Monde und
Asteroiden
Einsatz
von HLSL-Shader-Programmen bei der Darstellung der Sky-Sphäre,
der Planeten und Asteroiden
Partikel-, Waffen- und Schildeffekte,
dynamische Beleuchtung und Texturierung von 3D-Modellen
Partikel-,
Waffen- und Energieschildeffekte
Dynamische
Beleuchtung der Schiffsmodelle (Dynamische Beleuchtung der
Schiffshülle durch den aufblitzenden Energieschild,
Simulation einer
brennenden Schiffshülle)
Verwendung
von Schadenstexturen
Darstellung
der Waffeneffekte
Spielmechanik
Handling
der Waffensysteme
Dynamisches
Handling der Waffenobjekte
Kollisionsprävention
und Treffererkennung
KI-Programmierung
(Verwalten der Missionsziele, Flug- und
Waffensteuerung, Helper-Funktionen für die
Berechnung von
Kurskorrekturen, Manövertaktiken, Änderung der
Flugrichtung)
Musikauswahl, Missions-Scripting und
Kamerasteuerung
Musikauswahl
Missions-Scripting
(Missionsnachrichten, Missionsbeurteilung, Festlegen der
Missionsziele)
Kameraführung
(Vorprogrammierbare Kameraeinstellungen,
Kameraverfolgung eines Raumschiffs)
Echtzeit-Wassereffekte
Darstellung
der Umgebungsreflexionen und -refraktionen mithilfe von
Reflection und Refraction Mapping (Environment
Mapping)
Darstellung
der Wellenbewegung mithilfe von Bump Wave Mapping
Tageszeitänderungen und
Wettereffekte
Berechnung
der Uhrzeit
Ausbreitungsrichtung,
Farbe und Intensität des Sonnenlichts
Bewegung
der Sonne und Sterne
Simulation
von verschiedenen Witterungsverhältnissen
Niederschlagssimulation
Darstellung
des Himmelsgewölbes
Darstellung
und Bewegung der Sonne
Wolkenbewegung
und –darstellung
Blitze
Rendern
des Himmels in eine Environment Cube Map
Terrain Rendering
Flexibler
Aufbau eines Terrains aus dreidimensionalen Tiles
Vertex-
und Indexdaten des Terrains, Berechnung der Vertexnormalen aus
den Höheninformationen
Height
Mapping
Sichtbarkeitsprüfung
Ermittlung
der Höhe der Kamera über dem Terrain
Pixelgenaue
Beleuchtung des Terrains (Normal Mapping) in Abhängigkeit von
der Tageszeit und den Witterungsverhältnissen
Dynamische
Schatten in Abhängigkeit von der Tageszeit
Unterwasserdarstellung,
Lichtabsorption mit zunehmender Tiefe, Darstellung
von Unterwasserkaustiken
Architektur-Rendering
Modellformate
für die Beschreibung der Gebäude
Nahtloser
Übergang zwischen Innen- und Außenlevels
Implementierung
eines Portalsystems
Sichtbarkeitstests
(Fassade und Innenräume)
Kollisionstests
mit den Konstruktionselementen eines Gebäudes (Fassade und
Innenräume)
Pixelgenaue
Beleuchtung der Konstruktionselemente (Normal Mapping) in
Abhängigkeit von der Tageszeit und den
Witterungsverhältnissen
Darstellung
von spiegelnden Reflexionen mithilfe von kubischem Environment
(Normal) Mapping sowie mithilfe specular Normal Mapping
dynamische
Schatten in Abhängigkeit von der Tageszeit (Gebäudefassaden)
Unterwasserdarstellung,
Lichtabsorption mit zunehmender Tiefe, Darstellung
von Unterwasserkaustiken
Licht-
und Schattenberechnungen im Gebäudeinneren
Vegetations-Rendering + Animation (siehe
RealWorld-Programmbeispiele)