3D Landschaften
Christoph Thöns

Einführung:

Projektbeschreibung

Dieses Projekt hat zum Ziel Höhenlinien wie sie in der Geographie zur Darstellung von Niveauinformationen üblich sind zu nutzen, um eine echte 3-dimensionale Darstellung der Landschaft zu generieren. Ich habe mich auf höhere Detailstufe konzentriert, das bedeutet auf die Darstellung der Landschaft in einem Maßstab wie ein Mensch der in der Landschaft steht sie wahrnehmen würde. Es werden also z.B. einzelne Bäume und Häuser dargestellt. Prinzipiell könnten mit dem Ansatz auch größere Geländeausschnitte dargestellt werden, dies weiter zu verfolgen würde jedoch den Rahmen deutlich sprängen.

Übersicht über die Dokumentation

Der erste Teil der Dokumentation erläutert die Inbetriebnahme und Bedienung des Programms. Im zweiten Teil werden Konzepte und Entwurfsentscheidungen erläutert, um dann im dritten Teil auf einige Details der Implementierung näher einzugehen, konkrete Algorithmen zu erläutern und den Einstieg in den Quelltext zu erleichtern.

Systemvoraussetzungen

Für eine fehlerfreie Darstellung sollte die Grafikkarte des Systems und ihr Treiber(!) die OpenGL Shader Erweiterungen unterstützen. Ist dies nicht der Fall, wird die komplette Landschaft grünlich dargestellt. Für jede halbwegs aktuelle Grafikkarte mit aktuellen Treiben sollte dies allerdings kein Problem darstellen. Falls es doch ein Problem gibt, wird auf der Konsole die Fehlermeldung die OpenGL zurückliefert ausgegeben (im Appletbetrieb über das Java-Symbol im Tray einsehbar).

Programmstart

Die Implementierung läuft sowohl als allein stehendes Programm als auch als Applet im Browser. Das
Applet kann direkt über den Link gestartet werden. ACHTUNG: Mein Firefox hat ab und zu Probleme mit den mitgelieferten jogl natives! Dann läuft das Programm sehr langsam oder der Browser stürzt sogar ab wenn das Applet mehr als einmal geladen wird! Das Problem ist in der jogl Dokumentation erläutert und scheint im neusten Release behoben zu sein. Dies habe ich allerdings noch nicht getestet. Im Internet Explorer funktioniert allerdings alles problemlos.

Das allein stehende Programm kann über deploy/terrain.jar gestartet werden, wobei im selben Verzeichnis auch jogl.jar und das jogl-native-*.jar zum jeweiligen System liegen müssen.

Tastenkürzel:

Linke Maustaste: Blickwinkel der Kamera drehen.
Pfeiltasten: Bewegen (nur in er First Person Ansicht)
Mausrad: Zoomen (nur in Übersichtsansicht)
K: Zur nächsten Kamera weiterschalten 
N: Normalen für das Beleuchtungsmodell an-/ausschalten
C: Höhenlinien einzeichnen
S: Skysphere zeichnen
F: Faces zeichnen
F2: Nach resources/export.xml exportieren (nicht im Applet)
F5: Faces der Straßen zeichnen
F6: Umrisse der Staßen zeichnen
W: Wireframe Ansicht

Parameter:

Der erste Parameter gibt eine XML Datei im programmeigenen Format oder eine SVG Datei an, aus der die Höhenlinien geladen werden sollen. Welches Format vorliegt wird anhand der Dateiendung entschieden.