TUD Logo

TUD Startseite » ... » Ergebnisse studentischer Arbeiten » Große Belege » M.Feind C.Hennig

Computergraphik

Großer Beleg von Matthias Feind und Christian Hennig

Konzeption und Entwicklung von Komponenten
zur Erzeugung und Visualisierung
komplexer virtueller Welten

Studiengang Informatik, Sommersemester 2005
Institut für Software- und Multimediatechnik
Lehrstuhl für Computergraphik und Visualisierung

Betreuer: Dipl.-Inf. (FH) Benjamin Neidhold
Hochschullehrer: Prof Dr. rer. nat. Stefan Gumhold

Inhalt

  • Einleitung
  • Aufgabenstellung
  • Content-Pipeline
  • TileEditor
  • ScenarioEditor
  • Download

Einleitung

VR-Systeme werden heutzutage schon in vielen Bereichen, wie zum Beispiel der Automobilindustrie zur Entwicklung von "Concept Cars" oder der Unterhaltungsbranche in diversen Vergnügungsparks, eingesetzt. Am weitesten verbreitet sind sie zur Zeit in Simulatoren für die Ausbildung von Piloten. Dabei ist das vorrangige Ziel einer VR-Simulation, ein hohes Maß an Immersion zu erreichen. Immersion beschreibt die Intensität des Erlebens der virtuellen Welt durch den Benutzer. Bei steigender Immersion treten die Grenzen zwischen realer und virtueller Welt immer mehr in den Hintergrund.
Am Institut für Fördertechnik, Baumaschinen und Logistik der TU-Dresden entsteht seit 2002 in Zusammenarbeit mit dem Lehrstuhl Computergrafik ein VR-Simulations- und Visualisierungssystem. Gegenstand der Simulation sind verschiedene Baumaschinen und deren Verhalten in einer festgelegten Umgebung. Um die Kräfte, die bei der Bewegung des Fahrzeuges auf den Fahrer einwirken, zu simulieren, steht der Simulator auf einer Plattform, deren Lage mit einem Bewegungssystem, genannt "Hexaplot", bezüglich sechs Freiheitsgraden verändert werden kann. Das beinhaltet die Bewegung entlang und die Rotation um alle drei Achsen. Auch der Innenraum des Simulators ist mit einer authentischen Fahrerkabine, LCD-Rückspiegeln und einer 180 Grad Sicht auf die virtuelle Landschaft auf ein möglichst realistisches Fahrerlebnis ausgelegt.
Die Aufgabe der Computergrafik ist dabei zum einen die zeitgemäße Visualisierung der virtuellen Landschaft und zum anderen die Schaffung einer schnellen und einfachen Methode zur Erstellung einer solchen Landschaft und all ihrer Bestandteile. Letzteres steht im Mittelpunkt dieser Arbeit.

Aufgabenstellung

Ein großes Ziel des Computergrafik-Lehrstuhls ist die Schaffung eines Werkzeuges zur Erzeugung virtueller Welten unter anderem für den Einsatz im zuvor vorgestellten Bagger-Simulator.
Die wesentlichen Aufgabenbestandteile sind die Modellierung und Texturierung eines natürlich anmutenden Terrains, das Anlegen von verschiedenartigen Straßen, das Editieren der Straßenverläufe, die anschließende Generierung von Straßengeometrie und das Platzieren von 3D-Objekten auf dem Terrain. Dabei sollen Algorithmen entwickelt werden, welche die automatische Höhenanpassung der Straßen und Objekte an das Terrain vornehmen. Die Funktionalität dieser ersten Stufe wird in einem Tool namens TileEditor umgesetzt.
Die im TileEditor entwickelten Terrainelemente sollen in einem weiteren Tool, dem ScenarioEditor, zu größeren Einheiten zusammengefügt werden können. Dafür werden Algorithmen für die erforderlichen Anpassungen an den Rändern der Einzelteile benötigt.
Als Grundlage der Datenspeicherung in allen Bereichen, also als Eingabe-, Zwischen- und Ausgabeformat für beide Stufen, soll dabei das bereits am Lehrstuhl für Computergrafik entwickelte XML-basierte Format zur Beschreibung von 3D-Szenen, genannt XML3D, dienen.
Da der Beleg eine Gemeinschaftsarbeit ist, wurde folgende Aufgabentrennung vorgenommen:

Matthias Feind:

  • Konzeption und Entwicklung des TileEditors
Christian Hennig:
  • Konzeption und Entwicklung des ScenarioEditors
  • Entwicklung der Schnittstelle zwischen interner Datenrepräsentation und XML3D-Format

Content-Pipeline

Das Ziel war die Entwicklung eines Konzeptes mit dem sich bei Verringerung der Entwicklungszeit und -arbeit, im Vergleich zur bestehenden Lösung, dieselben oder vielleicht sogar bessere Ergebnisse erzielen lassen. Nach der Analyse einiger Anwendungen aus dem Bereich der VR-Modellierung und der speziell für diesen Fall geltenden Besonderheiten, wurde das Konzept einer Content-Pipeline entwickelt. Der Grundgedanke ist die Einführung verschiedener Abstraktionsniveaus. Jede Stufe stellt dabei andere Anforderungen an den Benutzer, was dazu führt, dass nicht mehr der ganze Entwicklungsprozess von erfahrenen Modellierern durchgeführt werden muss. Im Folgenden ist der grundsätzliche Aufbau der Pipeline abgebildet.

Content-Pipeline

Wie man sieht, kommen im Verlauf der Content-Erstellung mehrere Tools zum Einsatz. Dabei setzt das Konzept auf Wiederverwendung, denn die Ergebnisse jeder Stufe können zunächst in einer Datenbank abgelegt und später jederzeit wieder verwendet und zu größeren Einheiten zusammengefügt werden. Außerdem nutzt es die jeweiligen Vorteile der verschiedenen Sichten auf den Entwurfsgegenstand und ermöglicht zudem eine optimale Arbeitsteilung.
Im ersten Schritt werden mit Hilfe klassischer Modellierungstools elementare Objekte erstellt und in einem universellen Format in einer Objektdatenbank für die spätere Weiterverwendung abgelegt. Ganz kann man auf die aufwendige Modellierungsarbeit also nicht verzichten. Hier sieht man einen weiteren Aspekt der Pipeline. Alle Zwischenergebnisse liegen in einem einheitlichen Format, nämlich XML3D, vor. Daher können sie jederzeit mit dem XML3D-Viewer visualisiert und verglichen werden.
In einem weiteren Schritt soll nun unter Verwendung der Objektdatenbank und mit einem in dieser Arbeit speziell dafür entworfenen Editor das Szenario für den Simulator erstellt werden. Der Editor soll dabei relativ einfach zu bedienen sein und dem Nutzer eine Menge Arbeit ersparen. Um den hier noch nötigen Modellierungsaufwand möglichst gering zu halten, wurde diese Stufe noch einmal unterteilt. Im TileEditor entstehen in einer 3D-Ansicht nach dem "what you see is what you get"-Prinzip relativ kleine rechteckige Terraineinheiten, die so genannten Kacheln oder auch "Tiles". Diese können im XML3D-Format abgespeichert werden und dienen ab sofort als Eingabe für den ScenarioEditor.
Mit dem ScenarioEditor ist der Benutzer nun in der Lage, die Kacheln in einer Draufsicht per "drag and drop" zu größeren Szenarios zusammenzufügen. Die wichtigste Funktion ist die Möglichkeit, die Kacheln an ihren Rändern derart anzupassen, dass das resultierende Szenario eine Einheit bildet. Damit ist die Erzeugung der statischen 3D-Szene abgeschlossen.
In einer letzten Stufe, dem so genanten WorkspaceEditor, soll die Szene dynamisiert werden. So könnte man den Objekten der Szene unter Nutzung einer einfachen Skriptsprache nachträglich ein bestimmtes Verhalten geben. Beispielsweise ließen sich Autos auf diesem Wege dazu bringen, einer bestimmten Strecke zu folgen. Der WorkspaceEditor existiert aber bis jetzt lediglich als Idee und war auch nicht Bestandteil dieser Arbeit.
Mit diesem Gesamtkonzept, dass vor allem auf Wiederverwendung und Automatisierung setzt, soll es möglich sein, mit relativ geringem Aufwand sehr schöne virtuelle Landschaften für den Bagger-Simulator zu erzeugen.

TileEditor

Der TileEditor dient dem einfachen Erstellen von Terrainkacheln. Dies geschieht komplett in 3D. Folgende Grafik zeigt einen Screenshot des TileEditor:

Content-Pipeline

Der TileEditor stellt dem Benutzer folgende Funktionalität zur Verfügung:

  • 3D-Darstellung der Kachel
  • Terrainbearbeitung mittels spezieler Werkzeuge und/oder Importieren von Heightmaps
  • Terraintexturierung
    • Layererstellung
    • manuelles Auftragen der Layer
    • prozeduralles Auftragen der Layer
  • Straßeneditierung
    • Straßentypenerstellung
    • Import und Export von Straßentypen
    • Straßenverlauf an Terrain anpassen
    • Terrain an Straße anpassen
    • Vorlagen zum Erstellen von Kreuzungen in einem Modellierungstool
  • Objekteditierung
    • Import von XML3D-Objekten
    • Platzieren von Kachel
    • Objekte an Terrain anpassen
    • Terrain an Objekte anpassen
    • Hinzufügen von Snappunkten zu den Objekten

ScenarioEditor

Der ScenarioEditor dient vor allem dem Arrangieren der im TileEditor erzeugten dreidimensionalen Kacheln auf einer zweidimensionalen Arbeitsfläche und deren Verschmelzung zu einem größeren Szenario. Im Gegensatz zum TileEditor benötigt man dafür nicht unbedingt eine 3D-Ansicht, sondern erreicht mit einer Draufsicht sogar eine bessere Übersicht. Folgende Grafik zeigt einen Screenshot des ScenarioEditor-Hauptfensters:

Content-Pipeline

Der ScenarioEditor stellt dem Benutzer folgende Funktionalität zur Verfügung:

  • 2D-Draufsicht (einfache Bedienung und geringe Hardwarevoraussetzungen)
  • Höhenansicht (Darstellung der Beschaffenheit des Terrains mittels Heightmaps)
  • Zoom-Funktion (vier verschiedene Zoomstufen zur optimalen Bearbeitung großer und kleiner Szenarios)
  • automatische und manuelle Anpassung der Arbeitsflächengröße
  • Platzierung der Kacheln per „drag and drop“
  • Kacheln drehen (in 90°-Schritten)
  • Kacheln rücksetzen (auf ihren Ausgangszustand)
  • Anpassen der Kachelränder
    • Terrain
    • Straßenverläufe
  • Lücken auffüllen
    • Kacheln generieren (Erzeugung eines natürlich wirkenden Terrains und Texturierung)

Download

  • Download TileEditor (.zip) (1,68 MB)
  • Download ScenarioEditor (.zip) (4,00 MB)
  • Download Belegarbeit (.pdf) (26,3 MB)
  • Download TileEditor Dokumentation (.pdf) (5,1 MB)
  • Download ScenarioEditor Dokumentation(.pdf) (0,86 MB)
  • Download Vortragsfolien (.pps) (22,1 MB)
  • Download Demo Video(.mpg) (11,6 MB)
Stand: 1.2.2010, 14:38 Uhr
Autor: Dipl.-Medieninf. cand. Johannes Richter