Computergrafik-Praktikum (Sommersemester 2004)

von Sebastian Tetzel und Sebastian Bauer (TU Chemnitz)

Inhalt der Dokumentation:
  • 1. Aufgabenstellung
  • 2. Gras-Szene
    • 2.1. Implementierungsdetails
    • 2.2. Verbesserungsvorschläge
    • 2.3. Tests auf unterschiedl. Systemkonfigurationen
    • 2.4. Tastaturbelegung
    • 2.5. Download
  • 3. kombinierte Gras & Wasser-Szene
    • 3.1. Implementierungsdetails
    • 3.2. Verbesserungsvorschläge
    • 3.3. Tests auf unterschiedl. Systemkonfigurationen
    • 3.4. Tastaturbelegung
    • 3.5. Download
1. Aufgabenstellung
Darstellung und Animation einer Gras-Szene und einer Wasser-Szene mit OpenGL unter Verwendung von Vertex-Shadern. Nach der Fertigstellung der beiden Szenen sollten diese zu einer Szene verknüpft werden.



2. Gras-Szene


2.1. Implementierungsdetails
  • Skalierbarkeit: variable Anzahl von Grashalmen im Quelltext einstellbar (Konstante "anz")
  • Height-Mapping (Geländestruktur wird anhand von Graustufen-Bild errechnet)
  • Positionierung der Grashalme auf dem Gelände (in entsprechender Höhe des Untergrunds)
  • ausgehend von einem Grashalm-Modell werden anhand von Zufallsparametern (vor Programmstart initialisiert) die Eigenschaften der Grashalme festgelegt:
    • X/Y-Koordinaten auf Gelände
    • Farbton des Grashalms
    • Höhe des Grashalms (unabhängig vom Gelände)
    • Wuchsrichtung
  • Wind-Animation mit OpenGL:
    • neues Bewegungsmodell implementiert
    • einstellbare Windrichtung (0-360 Grad)
    • einstellbare Windstärke (= Amplitude)
    • an- / abschaltbarer "automat." Wind (eine Richtung / Wirbel / Dummy / Dummy-Blast)
    • einstellbare Windfrequenz (für automat. Wind)
  • Wind-Animation mit Vertex Shader:
    • analog zu OpenGL - Wind
  • "Frames-per-Second"-Counter
2.2. Verbesserungsvorschläge
  • Optimierungen hinsichtlich der Ausnutzung der Vertex Shader
  • Materialdefinitionen (realistischer)
  • Feineinstellung der Beleuchtung
  • evt. Texturierung des Bodens / der Grashalme (wohl eher nicht)
  • evt. Grafische Oberfläche zur komfortableren Parameter-Einstellung (Parameter die während der Laufzeit nicht verändert werden können)
2.3. Tests auf unterschiedl. Systemkonfigurationen
Hardware # der Grashalme FPS mit OpenGL FPS mit Vertex Shadern
AMD Athlon XP2000+
640 MB RAM
NVIDIA GeForce4 TI 4200
2000 32 40
4000 17 22
8000 8 12
Intel Celeron 2.6 GHz
512 MB RAM
NVIDIA GeForce FX Go 5200
2000 19 28
4000 14 18
8000 8 10
AMD Duron 1.6 GHz
256 MB RAM
NVIDIA GeForce MX440
2000 35 20
4000 19 12
8000 10 6

2.4. Tastaturbelegung
Taste(-n) Funktion
Cursor-Tasten links/rechtsRotation um Z-Achse
Cursor-Tasten oben/untenRotation um X-Achse
BildAuf / BildAbZoom
F1Fullscreen-Modus an /aus
F3Drahtgitter-Modus an / aus
F4Beleuchtung an / aus (funzt noch nicht so recht)
WWind-Modi: aus / OpenGL / Vertex Shader
Aautomat. Wind: aus / eine Richtung / Wirbel / Dummy / Dummy-Blast
Y / XWindstärke
E / RWindrichtung
N / MWindfrequenz
O / PDummy - Wirkungsbereich
J / LDummy entlang X-Achse bewegen
K / IDummy entlang Y-Achse bewegen

2.5. Download
openglgras.zip - 202KB (ausführbares Programm, Height-Map, CG-File)
Um das Programm zu starten muss der NVIDIA CG Toolkit installiert sein!



3. kombinierte Gras & Wasser-Szene


3.1. Implementierungsdetails
  • Gras-Details siehe oben
  • OpenGL-Wasser-Animation
  • variable Wellenhöhe /-frequenz
  • Animationskoppelung (Windstärke beeinflußt Gras und Wasser)
3.2. Verbesserungsvorschläge
  • Umsetzung in Vertex Shader
  • Reflektions- / Refraktionsberechnungen
  • Materialdefinitionen (realistischer)
  • Feineinstellung der Beleuchtung
3.3. Tests auf unterschiedl. Systemkonfigurationen
Hardware # der Grashalme* FPS mit OpenGL FPS mit Vertex Shadern
AMD Athlon XP2000+
640 MB RAM
NVIDIA GeForce4 TI 4200
2000 41 42
4000 27 29
8000 14 18
Intel Celeron 2.6 GHz
512 MB RAM
NVIDIA GeForce FX Go 5200
2000 28 29
4000 23 27
8000 14 17
AMD Duron 1.6 GHz
256 MB RAM
NVIDIA GeForce MX440
2000 20 16
4000 14 10
8000 8 6
* - entspricht nicht der tatsächlichen Anzahl der dargestellten Grashalme (ca. nur die Hälfte der Halme wird dargestellt)

3.4. Tastaturbelegung
Taste(-n) Funktion
Cursor-Tasten links/rechtsRotation um Z-Achse
Cursor-Tasten oben/untenRotation um X-Achse
BildAuf / BildAbZoom
F1Fullscreen-Modus an /aus
F3Drahtgitter-Modus an / aus
WWind-Modi: OpenGL / Vertex Shader
Y / XWindstärke

3.5. Download
openglwasser.zip - 202KB (ausführbares Programm, Height-Map, CG-File)
Um das Programm zu starten muss der NVIDIA CG Toolkit installiert sein!

letzte Änderung: 10.10.2004
2004(C) by Sebastian Bauer