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 284 Engines in Datenbank
Vergleich von Game Engines Webseite 284 Engines in Datenbank
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 284 Engines in Datenbank
Inhalt Game Engines im Vergleich Irrlicht Engine Projektumsetzung 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 Projektumsetzung Einleitung Merkmale Tool set Projektumsetzung Ausblick Bewertung
Irrlicht - Merkmale SDK Szenengraph root Auto Räder Licht ... 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 Projektumsetzung Einleitung Merkmale Tool set Projektumsetzung Ausblick Bewertung
Irrlicht – Tool set IrrKlang IrrEdit IrrXML 2D & 3D Soundengine 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
Projektumsetzung: Terrain Heightmap based terrain GeoMipMap LOD
Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite Ausblick Bewertung
Projektumsetzung: Himmel im Projekt: Skybox Skydome möglich
Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite Ausblick Bewertung
Projektumsetzung: Tempel Format: .obj nicht alle Formate gleich gut unterstützt collada unbenutzbar b3d und ms3d beste Unterstützung octree verfügbar
Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite Ausblick Bewertung
Projektumsetzung: Licht Lichtquellen in Irrlicht: ambient directional spot Standard: spot light
Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite Ausblick Bewertung
Projektumsetzung: Kamera Kameratypen in Irrlicht: FPS Maya Keymap zur Tastenbelegung
Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite Ausblick Bewertung
Projektumsetzung: Kollision triangle selector (auch für octree) collision response animator Treppensteigen funktioniert automatisch Kollisionsdetektion ist rudimentär – Steckenbleiben im Terrain
Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite Ausblick Bewertung
Projektumsetzung: Musik IrrKlang
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 LODs: billboard, reduzierte Astanzahl, Originalbaum
Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite Ausblick Bewertung
Projektumsetzung: Webseite LODs: billboard, reduzierte Astanzahl, Originalbaum
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 shader: auf manchen systemen werden die blätter nicht richtig dargestellt (haben falsche texturen)
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
Danke für eure Aufmerksamkeit