Sprache auswählen

Globe Viewer Ausblick

Die GlobeViewer-Entwicklung begann vor mehr als 5 Jahren. Aktuell arbeite ich an einer kompletten Neuaufsetzung des Projekts, damit die Darstellungsqualität der 3D-Kacheln erheblich verbessert wird. Anbei ein kurzer Einblick in den aktuellen Prototyp und die Änderungen, die dann später in der App verfügbar sein werden. Vermutlich wird die nächste Version erst im Jahr 2024 erscheinen, daher bitte ich um etwas Geduld. Warum dies so lange dauert, können Sie unten lesen.

Vielen Dank für Ihr Verständnis!

Mehr Speicher verfügbar

Seit dem Beginn der GlobeViewer-Entwicklung im Jahr 2017 hat sich die (mobile) Technik erheblich weiterentwickelt. Damals stand für Apps auf den Geräten nur sehr wenig Hauptspeicher (ca. 250 MB) zur Verfügung. Bei Überschreitung dieser Grenze wurde die App sofort vom Betriebssystem beendet, wodurch die Anzahl und die Auflösungen der Texturen, die in der App gleichzeitig geladen werden konnten, erheblich eingeschränkt wurde.

Aus dieser Zeit stammten die Definitionen für verfügbare Texturgrößen auf den 3D-Kacheln, sodass jede Kachel nur eine 512x512 Pixel große Textur für die Höheneinfärbung und eine 1.024x1.024 Pixel große Textur für die Oberflächen-NormalMap ermöglichte. Das Maximum für Texturen liegt heute bei 4.096x4.096 Pixeln - davon konnten damals nur wenige geladen werden, bevor man große Probleme bekam. Neue Texturformate (die auch auf Mobilgeräten komprimiert angezeigt werden können) und mehr verfügbarer Hauptspeicher für Apps, ermöglicht jetzt eine Neudefinition der Texturgrößen.

Bessere Bildschirmauflösungen und mehr Leistung

Die ersten iPad-Generationen kamen mit einer 1.024x768er Bildschirmauflösung heraus. Heute arbeiten fast alle Geräte mit mindestend FullHD- oder 4K-Auflösungen und mehr. Um diese Pixelmengen auch flüssig berechnen zu können ist auch die Rechenleistung ebenfalls erheblich angestiegen. Somit können heute deutlich mehr Effekte und aufwendigere Shader für die graphische Darstellung verwendet werden als damals. Allerdings ist die Leistung bei den vielen verfügbaren Geräteklassen sehr unterschiedlich verteilt. Es wird also eine Abstufung der Darstellung in der App geben müssen, um die App auf möglichst vielen Geräten lauffähig zu halten.

Aktuelle Kartendaten mit mehr Details

Auch die Erde hat sich verändert, am stärksten sieht man dies am Küstenverlauf. Hier ein Beispiel, wie sich z.B. die Küstenlinie in der Nähe von Seol durch Landgewinnung in den letzten 5 Jahren verändert hat. Es wird also höchste Zeit, die Karten zu aktualisieren.

Vergleich der Küstenlinie von 2018 zu 2023 in der Nähe von Seol

Durch die Neudefinition der Texturen bietet sich auch die Gelegenheit mehr Informationen auf den Texturen unterzubringen. So fehlen z.B. bislang Flüsse in den Höhentexturen. Es macht einen optisch großen Unterschied, ob ein Fluss das Licht reflektiert oder nicht:

Sichtbarkeit von Wasserwegen durch verschiedene Glanzeinstellungen

Genauso können auch Straßen, Grenzen und z.B. die Landnutzung mit in den Texturen untergebracht werden. Diese können dann zur Höhenkarte einfach eingeblendet werden.

Darstellung von verschiedenen OpenStreetMap-Datenschichten

Aufteilung der Karte

Die Karte ist in 22.912 Kacheln aufgeteilt. Damit sinnvoll zusammenhängende Bereiche gemeinsam verarbeitet werden, gibt es eine Aufteilung in Zonen. Die erste Zone ist Europa und wird gerade bearbeitet.

Übersicht über die bereits berechneten Kacheln in Europa

Region 1: Europa & Wasserverlauf (Vergrößert: Bibione Pineda/Venedig)

Entwicklungsschritte zur nächsten Version

  1. Höhendaten anpassen
    1. Die ASTER-Höhendaten liegen bereits als 3.601x3.601 Daten vor. Diese werden auf 4.096x4.096 hochskaliert.
  2. Datenlayer erzeugen (Datenexport von OpenStreetMap über QGIS als 4.096x4.096 Texturen gerendert) - FERTIG
    1. Wasserwege und Küstenlinien
    2. Grenzverläufe
    3. Straßen und Eisenbahnlinien
    4. Bebauung
    5. Landnutzung (Landwirtschaft, Forstwirtschaft, Ortschaften)
  3. Shaderdefinition und Texturerstellung - FERTIG
    1. Es wird der Shader für die Darstellung in Unity festgelegt
    2. Im Anschluss werden dann die Texturen in die benötigte Form gebracht
  4. Import in Unity und Verarbeitung - FERTIG
    1. Festlegung der verwendeten Unity-Version: vorerst bleibt es bei 2022.3 (Mai 2024)
    2. Festlegung der Texturgrößen pro Plattform (vermutlich als 2.048x2.048 wegen Speicherplatz und Downloadzeiten)
  5. Export der Addressables aus Unity3D
    1. Test des Exports
    2. Komplett-Export und Server-Upload
  6. Versionsbau
    1. Laden der neuen Addressables vom Server
    2. Umstellen der UI-Darstellungsoptionen auf den neuen Shader

Parallel dazu muss immer ein funktionsfähiger Prototyp verfügbar sein, um den Datenimport zu überprüfen. Welche Rohdaten bereits als Texturen vorliegen, können Sie in der folgenden Tabelle sehen.

Textur-Erstellung und Optimierung abgeschlossen

In diesem Schritt werden aus den zuvor erstellten Einzeltexturen zwei zusammengesetzte Texturen erstellt. Dabei werden die Farbkanäle so zusammengesetzt, dass wir die maximale Menge an Informationen in den verfügbaren Farbkanälen unterbringen können. So bleiben die zu übertragenden Datenmengen überschaubar. Pro Textur haben wir 4 Farbkanäle (RGBA) zur Verfügung.

  • Farbtextur
    • Die Farbtextur erhält in RGB die Farbverläufe der Höhendaten. Alle Wasserflächen sowie der Küstenverlauf werden in diese Farbtextur hineingeblendet.  Da die Flächennutzung immer nur zu einer Gruppe gehören kann (Stadtgebiet, Landwirtschaft, Waldnutzung) , werden alle drei Gruppen im Alpha-Kanal mit unterschiedlichen Helligkeitsstufen abgelegt. Der verwendete Shader kann so die drei Gruppen in der Software wieder trennen.
  • Strukturtextur
    • Die restlichen Daten (Straßen, Eisenbahnen, Grenzen und Gebäude) können sich überlappen. Daher müssen diese Texturen als Einzelebenen gespeichert werden. Somit wird jede Ebene in einen Kanal der Strukturtextur gelegt.

Aktueller Stand Mai 2024

Es werden jetzt die Daten neu zusammengepackt und für den Export vorbereitet. Hier muss die Datenmenge pro Plattform mit dem zur verfügung stehenden Speicherplatz auf dem Server in Übereinstimmung gebracht werden. Es kann daher sein, dass einzelne Texturgrößen kleiner erzeugt werden müssen... das werden wir am Ende sehen.

Anbei ein aktuelles Bild der Daten vom zerstörten Kachowka-Stausee. Die Höhendaten stammen von der Zeit des intakten Staudamms, es sind also keine Daten dort vorhanden. Es ist nur möglich Stellen mit Wasser nachträglich in den Höhendaten zu glätten, aber ohne neue Daten kann auch kein Höhenverlauf dort dargestellt werden. Überblendet wurden die Straßen, Eisenbahnen und Gebäude. Ich experimentiere hier auch mit einer neuen Ansicht, um die Strukturen besser auf der Karte sichtbar zu machen.

Ansicht des zerstörten Kachowka-Staudamms in der Ukraine