480 likes | 655 Views
Visualisierung eines Sultan Han auf Basis einer Gameengine. Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael J. Winckler Datum: 07.05.08 Katarina Boland. Aufgabenstellung. Darstellung von 3D Tempelmodellen mit Game Engine Auswahl einer Engine
E N D
Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael J. Winckler Datum: 07.05.08 Katarina Boland
Aufgabenstellung • Darstellung von 3D Tempelmodellen mit Game Engine • Auswahl einer Engine • Test und Evaluation:Darstellen einer Szene mit Tempel, natürlicher Umgebung & Musik • Tutorial • Webseite
Inhalt • Vergleich von Game Engines • Irrlicht Engine • Projektumsetzung • Ausblick • Bewertung
Vergleich von Game Engines • Vorauswahl auf Grundlage der DevMaster.net 3D Engines Datenbank,Wikipedia und anderem • Weitere Informationen durch Beispielprogramme, Webseite o.Ä. • Vergleich der Favoriten hinsichtlich ihrer Features
Vergleich von Game Engines Webseite
Vergleich von Game Engines - Kriterien • Engine mit umfassender Funktionalität im Grafikbereich • laufende Entwicklung / support • Portabilität • gute Dokumentation • möglichst freie Lizenz • Bedienbarkeit • Wahl fiel daher auf die Irrlicht Engine
Inhalt • Game Engines im Vergleich • Irrlicht Engine • Einleitung • Merkmale • Tool set • Projektumsetzung • Ausblick • Bewertung
Irrlicht - Einleitung • Gründung: 2002 von Nikolaus Gebhardt • bis ca. 2005 alleiniger Entwickler • mittlerweile Team aus 9 Personen • ...und viele Freiwillige • Open-source „Freizeitprojekt“
Inhalt • Game Engines im Vergleich • Irrlicht Engine • Einleitung • Merkmale • Tool set • Projektumsetzung • Ausblick • Bewertung
root Auto ... Räder Licht ... Irrlicht - Merkmale • SDK • Szenengraph • unterstützt OpenGL,Direct3D 8,Direct3D 9,Irrlicht Engine Software Renderer,Burning‘s Software Renderer • reine Grafikengine, (fast) keine Physik • Objektorientiert, C++
Irrlicht - Merkmale • Aufbau: 6 Namespaces • irr: alles • irr::core: Grundlegende Klassen, z.B. Vektoren • irr::gui: Klassen für die GUI-Erstellung • irr::io: input-output Interfaces • irr::scene: Szenenverwaltung, z.B. Laden von Meshes • ir::video: Zugriff auf Videotreiber, rendering
Inhalt • Game Engines im Vergleich • Irrlicht Engine • Einleitung • Merkmale • Tool set • Projektumsetzung • Ausblick • Bewertung
Irrlicht – Tool set • IrrKlang • 2D & 3D Soundengine • IrrEdit • 3D world editor und radiosity lightmap Generator • IrrXML • XML Parser für C++
Inhalt • Vergleich von Game Engines • Irrlicht Engine • Projektumsetzung • Demo • Terrain • Himmel • Tempel • Licht • Kamera • Kollisionsdetektion • Musik • Gras • Bäume • Webseite • Ausblick • Bewertung
Projektumsetzung Demo
Inhalt • Vergleich von Game Engines • Irrlicht Engine • Projektumsetzung • Demo • Terrain • Himmel • Tempel • Licht • Kamera • Kollisionsdetektion • Musik • Gras • Bäume • Webseite • Ausblick • Bewertung
Heightmap based terrain GeoMipMap LOD Projektumsetzung: Terrain
Inhalt • Vergleich von Game Engines • Irrlicht Engine • Projektumsetzung • Demo • Terrain • Himmel • Tempel • Licht • Kamera • Kollisionsdetektion • Musik • Gras • Bäume • Webseite • Ausblick • Bewertung
im Projekt: Skybox Skydome möglich Projektumsetzung: Himmel
Inhalt • Vergleich von Game Engines • Irrlicht Engine • Projektumsetzung • Demo • Terrain • Himmel • Tempel • Licht • Kamera • Kollisionsdetektion • Musik • Gras • Bäume • Webseite • Ausblick • Bewertung
Format: .obj nicht alle Formate gleich gut unterstützt collada unbenutzbar b3d und ms3d beste Unterstützung Projektumsetzung: Tempel
Inhalt • Vergleich von Game Engines • Irrlicht Engine • Projektumsetzung • Demo • Terrain • Himmel • Tempel • Licht • Kamera • Kollisionsdetektion • Musik • Gras • Bäume • Webseite • Ausblick • Bewertung
Lichtquellen in Irrlicht: ambient directional spot Standard: spot light Projektumsetzung: Licht
Inhalt • Vergleich von Game Engines • Irrlicht Engine • Projektumsetzung • Demo • Terrain • Himmel • Tempel • Licht • Kamera • Kollisionsdetektion • Musik • Gras • Bäume • Webseite • Ausblick • Bewertung
Kameratypen in Irrlicht: FPS Maya Keymap zur Tastenbelegung Projektumsetzung: Kamera
Inhalt • Vergleich von Game Engines • Irrlicht Engine • Projektumsetzung • Demo • Terrain • Himmel • Tempel • Licht • Kamera • Kollisionsdetektion • Musik • Gras • Bäume • Webseite • Ausblick • Bewertung
triangle selector (auch für octree) collision response animator Projektumsetzung: Kollision • Treppensteigen funktioniert automatisch
Inhalt • Vergleich von Game Engines • Irrlicht Engine • Projektumsetzung • Demo • Terrain • Himmel • Tempel • Licht • Kamera • Kollisionsdetektion • Musik • Gras • Bäume • Webseite • Ausblick • Bewertung
IrrKlang Projektumsetzung: Musik
Inhalt • Vergleich von Game Engines • Irrlicht Engine • Projektumsetzung • Demo • Terrain • Himmel • Tempel • Licht • Kamera • Kollisionsdetektion • Musik • Gras • Bäume • Webseite • Ausblick • Bewertung
Projektumsetzung: Gras • nicht im Irrlicht SDK enthalten • Grass Node v0.3.2 von G. Davidson 02/06 • Dokumentation • Prototyp: • Fläche auf feste Größe begrenzt • Grasgenerierung ineffizient, tile manager muss noch implementiert werden
Projektumsetzung: Gras • billboard Grasbüschel als Partikel • Höhe des Grases: Grassmap • Farbe des Grases: Colormap • Grasbüschel sind Teil von Flicken • ein Knoten pro Flicken • Gras wird von Wind beeinflusst
Projektumsetzung: Gras Vergleich der FPS – mit / ohne Gras
Inhalt • Vergleich von Game Engines • Irrlicht Engine • Projektumsetzung • Demo • Terrain • Himmel • Tempel • Licht • Kamera • Kollisionsdetektion • Musik • Gras • Bäume • Webseite • Ausblick • Bewertung
Projektumsetzung: Bäume • auch nicht im SDK enthalten • Tree Scene Node von Asger Feldthaus • keine Dokumentation
Projektumsetzung: Bäume • Baumdesigns werden in XML-Dateien gespeichert • pseudo-zufällige Abänderung der Bäume • Blätter sind Gruppen von Billboards • 4 Designs mit Texturen bereitgestellt • Shader enthalten • Bäume haben 3 LODs • sehr effizient
Inhalt • Vergleich von Game Engines • Irrlicht Engine • Projektumsetzung • Demo • Terrain • Himmel • Tempel • Licht • Kamera • Kollisionsdetektion • Musik • Gras • Bäume • Webseite • Ausblick • Bewertung
Projektumsetzung: Webseite Webseite
Inhalt • Vergleich von Game Engines • Irrlicht Engine • Projektumsetzung • Ausblick • Bewertung
Ausblick • viele Möglichkeiten zur Verbesserung des Prototyps • Gras: • Anpassen an Größe des Terrains • tile-manager • Positionierung: Gras scheint durch Objekte -> • prozedural, prüfen ob Objekt vorhanden • Grassmap automatisch ändern • „hidden grass removal“ – verdecktes Gras nicht rendern • unterschiedliche Grasbüschel
Ausblick • viele Möglichkeiten zur Verbesserung des Prototyps • Bäume: • Shader vermutlich fehlerhaft • Verwendung von L-Systemen • Wind • Generierung von Wäldern schwierig wegen Positionierung – Waldgenerator für Flächen (oder auch vegetation map) • Vereinfachung wünschenswert
Ausblick • viele Möglichkeiten zur Verbesserung des Prototyps • Terrain: • Verwendung von prozeduralen Texturen • Anpassen von Textur und Gras (Boden braun, in der Ferne ohne Gras grün...) • Simulation endlosen Terrains
Ausblick • viele Möglichkeiten zur Verbesserung des Prototyps • Generierung von Landschaften: • fraktaler Landschaftsgenerator • Integration von Geo-Info-Daten • Zusätzliche Effekte: • Wolken (plugin vorhanden) • Lensflare (plugin vorhanden) • ...
Inhalt • Vergleich von Game Engines • Irrlicht Engine • Projektumsetzung • Ausblick • Bewertung
Bewertung - Irrlicht • sehr strukturiert, dadurch gut zu bedienen • Grundfunktionen einfach • außerhalb grundlegender Funktionen muss vieles selbst implementiert werden • Plugins oft schlecht dokumentiert und prototypisch • Entwicklung eigener Knotentypen u.Ä. recht einfach
Bewertung – Irrlicht: Fazit • gut geeignet wenn man... • die Funktionsweise von Game Engines und den benutzten Plugins verstehen will • eigene Implementationen integrieren möchte • weniger gut geeignet.... • wenn man fertige Lösungen und umfassende Funktionalität möchte