Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für AnfängerUniversität Heidelberg WS 07/08Praktikumsleiter: Dr. Michael J. Winckler
Datum: 07.05.08Katarina 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
EinleitungMerkmaleTool 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
EinleitungMerkmaleTool set
Projektumsetzung Ausblick Bewertung
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++
root
Auto
Räder Licht ...
...
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
EinleitungMerkmaleTool set
Projektumsetzung Ausblick Bewertung
Irrlicht – Tool set
IrrKlang2D & 3D Soundengine
IrrEdit3D world editor und
radiosity lightmap Generator
IrrXMLXML 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
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
Projektumsetzung: Tempel Format: .obj nicht alle Formate
gleich gut unterstützt
collada unbenutzbar b3d und ms3d beste
Unterstützung
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
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 begrenztGrasgenerierung 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-managerPositionierung: 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 fehlerhaftVerwendung von L-SystemenWindGenerierung 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 TexturenAnpassen 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 willeigene Implementationen integrieren möchte
weniger gut geeignet....wenn man fertige Lösungen und umfassende
Funktionalität möchte
Danke für eure Aufmerksamkeit