DEM-Hintergründe im 3D-Editor als DDS laden

Moderator: Roland Ziegler

Antworten
Nachricht
Autor
Benutzeravatar
Johannes
Beiträge: 3195
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

DEM-Hintergründe im 3D-Editor als DDS laden

#1 Beitrag von Johannes »

Danke an alle, die mir zum Thema DEM-Auflösungen geantwortet haben! In dem Thread war teils von Auflösungsproblemen beim Laden georeferenzierter Bitmaps auf DEMs im 3D-Editor die Rede. Die habe ich auch bemerkt und ein bisschen experimentiert. Meiner Meinung nach ist es sinnvoll, Hintergrundbitmaps nicht als PNG, sondern als DDS in den Editor zu laden. Das führt zu deutlich reduziertem Speicherverbrauch.

1179 x 1211 PNG, hier ist er mehrmals an die Speichergrenze gekommen und das System war unbenutzbar:
Bild

Das gleiche Bild als 2048 x 2048 DDS
Bild

Einschränkung ist, dass DDS nur Zweierpotenzen als Bildgröße unterstützt. (Edit: Das scheint nicht allgemein zu gelten; die NVIDIA Texture Tools beschweren sich, aber mit GDAL kann ich problemlos ein DDS mit "krummen" Dimensionen schreiben und das auch in den 3D-Editor laden. Die folgenden Schritte sind dann unnötig; natürlich muss die DDS-Datei weiterhin die Endung .png haben.) Ich gehe also wie folgt vor:
  • Gegeben sei bild.trf mit zugehöriger bild.png
  • bild.png in Gimp laden (im Beispiel 1179x1211).
  • Im Menü Bild -> Leinwandgröße die Größe in x- und y-Richtung auf die nächste Zweierpotenz stellen (hier 2048x2048).
  • Beim Y-Versatz 9999 eingeben. Gimp schiebt das Bild automatisch in die linke untere Ecke – dadurch muss man die Geokoordinaten nicht anfassen.
  • Bild als bild_dds.dds exportieren (DXT1 genügt).
  • Die exportierte bild_dds.dds nach bild_dds.png umbenennen, damit Zusi sie findet (Carsten: wäre schön, wenn das irgendwann nicht mehr nötig wäre)
  • bild.trf nach bild_dds.trf kopieren und dort die Zeilen "Groesse.x" und "Groesse.y" anpassen. Es muss dort jeweils die Anzahl Pixel multipliziert mit der Skalierung stehen. Im Beispiel also:
    alt (bild.trf)

    Code: Alles auswählen

    Skalierung.x=8.0
    Skalierung.y=8.0
    …
    Groesse.x=9432.0
    Groesse.y=9688.0
    
    neu (bild_dds.trf): 8*2048=16384

    Code: Alles auswählen

    Skalierung.x=8.0
    Skalierung.y=8.0
    …
    Groesse.x=16384.0
    Groesse.y=16384.0
    
  • Die Datei bild_dds.trf im 3D-Editor laden
Nebenbefund: Der 3D-Editor lädt DEMs 4-Byte-weise, was beim Laden eines simplen DEMs eine halbe Million Systemaufrufe verursacht. Vielleicht lässt sich im Zuge der Delphi-Versionsumstellung da ein gepufferter Streamreader dazwischenschalten?
Bild
Interessant auch, dass er beim Laden des Bitmaps auch das DEM nochmals lädt.
Zuletzt geändert von Johannes am 19.02.2022 10:40:18, insgesamt 1-mal geändert.

Benutzeravatar
Johannes
Beiträge: 3195
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: DEM-Hintergründe im 3D-Editor als DDS laden

#2 Beitrag von Johannes »

Bisschen verdutzt war ich übrigens, als ich gesehen habe, dass der 3D-Editor die Datei mit dem Bild gleich 26× lädt. Hat das irgendeinen Hintergrund?

Bild

Antworten