Einleitung

Terrainvisualisierung ist die dreidimensionale Darstellung von digitalen Geländemodellen mit Hilfe von primitiven geometrischen Objekten, wie z.B. Linien, Dreiecken oder Quadraten. Die Anordnung und Form der geometrischen Objekte wird dabei durch das digitale Höhenmodell (auch Heightmap genannt) und die Farbe in Abhängigkeit von der relativen Höhe oder einer über das Gelände gelegten Textur bestimmt.

Bei der Visualisierung von digitalen Geländedaten müssen oft riesige Datenmengen verarbeitet werden. Da jedoch die meisten Einsatzgebiete Echtzeit-Rendering voraussetzen und die Rechnerressourcen begrenzt sind, werden spezielle "Level Of Detail (LOD) " Algorithmen benötigt, welche es trotz der großen Datenmengen erlauben, das Gelände in Echtzeit darzustellen.

Als LOD Algorithmen bezeichnet man in der Computergraphik Verfahren, welche den zum Zeichnen nötigen Rechenaufwand vermindern, indem sie qualitativ hochwertige durch qualitativ minderwertigere Objekte austauschen. Dieser Austauschprozess findet statt, wenn er vom menschlichen Auge kaum bis nicht mehr wahrnehmbar ist.

Ziele

Im Rahmen eines Anfänger Softwarepraktikums am Interdisziplinären Zentrum für wissenschaftliches Rechnen in Heidelberg war es meine Aufgabe mich über die verschiedenen digitalen Geländemodelle und Datenformate, in denen diese verfügbar sind, zu informieren und eine Beispielsanwendung zur Terrainvisualisierung zu programmieren. Meine Anwendung "TerrainViewer", sollte dabei folgende Funktionen aufweisen:

Fazit

Das Einlesen und Darstellen digitaler Geländemodelle ist mit den entsprechenden Kenntnissen in OpenGL oder anderen 3D API's relativ leicht zu bewerkstelligen. Die effiziente Darstellung dieser Daten ist jedoch alles andere als trivial. Neben guten Kenntnissen in der verwendeten Programmiersprache und der zugrunde liegenden Hardware ist auch algorithmische Denkfähigkeit nötig. Zusätzlich ist ein gutes Qualitäts-Leistungs-Verhältnis bei der Darstellung nötig.

Die von mir entwickelte TerrainViewer Applikation kann beliebige Daten im ARC/INFO ASCII Grid Format sowie eine Textur im Bitmap Format einlesen und darstellen. Einzige Beschränkung ist, dass das DGM und die Textur quadratisch vorliegen. Der eingebaute Algorithmus zur Reduzierung der Dreiecke steigert die Frames per Second (FPS) je nach Einstellung und Beschaffenheit des Geländes um bis zu 50% - 100%. Das qualitative Ergebnis ist aber leider relativ schlecht, da aufgrund der unterschiedlichen Detailstufen "Cracks" und "T-Junctions" zwischen den Dreiecken entstehen können. Prinzipiell ist die Anwendung jedoch zum effizienten Darstellen von Terraindaten bestehend aus bis zu 1 Mio. Gitterpunkten (abhängig von der Hardware) geeignet.

Ausblick

Die TerrainViewer Applikation kann an verschiedenen Stellen erweitert und natürlich auch verbessert werden: