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

Post on 05-Apr-2015

107 views 0 download

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

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