Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger...

47
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

Transcript of Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger...

Page 1: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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

Page 2: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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

Page 3: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt

Vergleich von Game Engines Irrlicht Engine Projektumsetzung Ausblick Bewertung

Page 4: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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

Page 5: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Vergleich von Game Engines

Webseite

Page 6: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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

Page 7: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt

Game Engines im Vergleich Irrlicht Engine

EinleitungMerkmaleTool set

Projektumsetzung Ausblick Bewertung

Page 8: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Irrlicht - Einleitung

Gründung: 2002 von Nikolaus Gebhardt

bis ca. 2005 alleiniger Entwickler mittlerweile Team aus 9 Personen ...und viele Freiwillige Open-source „Freizeitprojekt“

Page 9: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt

Game Engines im Vergleich Irrlicht Engine

EinleitungMerkmaleTool set

Projektumsetzung Ausblick Bewertung

Page 10: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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 ...

...

Page 11: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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

Page 12: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt

Game Engines im Vergleich Irrlicht Engine

EinleitungMerkmaleTool set

Projektumsetzung Ausblick Bewertung

Page 13: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Irrlicht – Tool set

IrrKlang2D & 3D Soundengine

IrrEdit3D world editor und

radiosity lightmap Generator

IrrXMLXML Parser für C++

Page 14: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung

Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite

Ausblick Bewertung

Page 15: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Projektumsetzung

Demo

Page 16: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung

Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite

Ausblick Bewertung

Page 17: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Projektumsetzung: Terrain Heightmap based

terrain GeoMipMap LOD

Page 18: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung

Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite

Ausblick Bewertung

Page 19: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

im Projekt: Skybox Skydome möglich

Projektumsetzung: Himmel

Page 20: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung

Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite

Ausblick Bewertung

Page 21: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Projektumsetzung: Tempel Format: .obj nicht alle Formate

gleich gut unterstützt

collada unbenutzbar b3d und ms3d beste

Unterstützung

Page 22: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung

Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite

Ausblick Bewertung

Page 23: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Projektumsetzung: Licht Lichtquellen in Irrlicht:

ambient directional spot

Standard: spot light

Page 24: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung

Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite

Ausblick Bewertung

Page 25: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Projektumsetzung: Kamera Kameratypen in

Irrlicht: FPS Maya

Keymap zur Tastenbelegung

Page 26: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung

Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite

Ausblick Bewertung

Page 27: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Projektumsetzung: Kollision triangle selector (auch für octree) collision response animator

Treppensteigen funktioniert automatisch

Page 28: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung

Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite

Ausblick Bewertung

Page 29: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Projektumsetzung: Musik IrrKlang

Page 30: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung

Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite

Ausblick Bewertung

Page 31: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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

Page 32: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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

Page 33: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Projektumsetzung: Gras

Vergleich der FPS – mit / ohne Gras

Page 34: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung

Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite

Ausblick Bewertung

Page 35: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Projektumsetzung: Bäume

auch nicht im SDK enthalten Tree Scene Node von Asger Feldthaus keine Dokumentation

Page 36: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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

Page 37: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt Vergleich von Game Engines Irrlicht Engine Projektumsetzung

Demo Terrain Himmel Tempel Licht Kamera Kollisionsdetektion Musik Gras Bäume Webseite

Ausblick Bewertung

Page 38: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Projektumsetzung: Webseite

Webseite

Page 39: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt

Vergleich von Game Engines Irrlicht Engine Projektumsetzung Ausblick Bewertung

Page 40: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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

Page 41: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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

Page 42: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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

Page 43: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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) ...

Page 44: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Inhalt

Vergleich von Game Engines Irrlicht Engine Projektumsetzung Ausblick Bewertung

Page 45: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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

Page 46: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

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

Page 47: Visualisierung eines Sultan Han auf Basis einer Gameengine Softwarepraktikum für Anfänger Universität Heidelberg WS 07/08 Praktikumsleiter: Dr. Michael.

Danke für eure Aufmerksamkeit