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
    1. Festlegung der verwendeten Unity-Version: Aktuell Testen der 2023.3.0b2 BETA (Jan. 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.

Übersicht über die Texturerstellung

25.07.2023 - 12.11.2023 Tiles
Borders Buildings CityAreas Forest Landuse Railroads Roads Water
Group A 6900                
Europa 1454 c c c c c c c c
Africa1 1940 c c c c c c c c
Africa2 1095 c c c c c c c c
Russia1 1390 c c c c c c c c
Russia2 1021 c c c c c c c c
Group B 5464                
Australia 903 c c c c c c c c
China1 1362 c c c c c c c c
China2 1940 c c c c c c c c
Indonesia 1038 c c c c c c c c
Japan 152 c c c c c c c c
NewZealand 69 c c c c c c c c
Group C 6738                
NorthAmerica1 1544 c c c c c c c c
NorthAmerica2 1323 c c c c c c c c
NorthAmerica3 1080 c c c c c c c c
NorthAmerica4 815 c c c c c c c c
PacificIslands 181 c c c c c c c c
SouthAmerica1 781 c c c c c c c c
SouthAmerica2 1014 c c c c c c c c
Group D 3810                
Antarctica1 998 - - - - - - - c
Antarctica2 1051 - - - - - - - c
Antarctica3 1761 - - - - - - - c
  • x = In Arbeit
  • c = Fertig
  • - = nicht notwendig

Textur-Optimierung

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.
17.11.2023 - 22.12.2023 Tiles
Color Textur (RGB: Height map + Water, A: CityAreas + Forest + Landuse) Structure Textur (RGBA: Roads + Buildings + Borders + Railroads)
Group A 6900    
Europa 1454 c c
Africa1 1940 c c
Africa2 1095 c c
Russia1 1390 c c
Russia2 1021 c c
Group B 5464    
Australia 903 c c
China1 1362 c c
China2 1940 c c
Indonesia 1038 c c
Japan 152 c c
NewZealand 69 c c
Group C 6738    
NorthAmerica1 1544 c c
NorthAmerica2 1323 c c
NorthAmerica3 1080 c c
NorthAmerica4 815 c c
PacificIslands 181    
SouthAmerica1 781 c c
SouthAmerica2 1014 c c
Group D 3810    
Antarctica1 998 - -
Antarctica2 1051 - -
Antarctica3 1761 - -
  • x = In Arbeit
  • c = Fertig
  • - = nicht notwendig