TransDEM Forum https://forum.transdem.de/ |
|
3D-UTM-Kacheln https://forum.transdem.de/viewtopic.php?f=9&t=276 |
Page 1 of 1 |
Author: | geophil [ 01 Nov 2013 15:46 ] |
Post subject: | 3D-UTM-Kacheln |
Seit der allerersten Version für Trainz aus 2005 gibt es in TransDEM eine „Basemap“-Funktionalität. Das sind die großen universellen Texturträgerobjekte, auf deren Oberfläche automatisch das Abbild großmaßstäbiger Karten, Gleispläne oder Orthofotos aufgebracht wird. In TransDEM heißen sie aus historischen Gründen „UTM-Kacheln“ (und sind am UTM-Koordinatengitter ausgerichtet). Seit TransDEM 1.2 (2006) werden diese Kacheln nicht nur automatisch „bedruckt“, sondern auch automatisch an der richtigen Stelle in der Strecke platziert. Solche „Basemaps“ stellen eine Alternative für Bodentexturen dar, deren Auflösung aufgrund der Datenstruktur bei Trainz begrenzt ist, wenn ganze Baseboards und ganze Streckenmodule mit Karten oder Luftbildern versehen werden sollen. Wie bei fast allen Basemap-Lösungen verwendet TransDEM für seine UTM-Kacheln vorgefertigte Meshes als Texturträger, die von Natur aus eine große flache Ebene bilden. In bergigem Gelände ist dies weniger ideal, da die Kacheln auf die Höhe der tatsächlichen Geländeoberfläche am jeweiligen Arbeitspunkt angehoben oder gesenkt werden müssen. Die Texturen sind für jede Kachel individuell, aber die Kachel-Meshes sind immer dieselben. 2010 kamen zu den ursprünglichen 1000m-Kacheln kleinere mit 500 m Kantenlänge hinzu, aber die sind an Berghängen immer noch reichlich unhandlich. Für den Streckenbauer wäre es deutlich einfacher, würden die UTM-Kacheln die Textur für Karte oder Luftbild auf einer am tatsächlichen Gelände orientierten Oberflächenform wiedergeben. Das bedeutet natürlich, dass nicht mehr nur die Texturen individuell erzeugt werden, sondern auch die Texturträger, die Meshes selbst, individuell für jede Kachel gefertigt werden. Ein nicht ganz unbescheidener Rechenaufwand. Vor etwa einem Jahr hat Trainz-Anwender ModelerMJ ein Projekt für solche individuellen Gelände-Basemaps gestartet, wobei sein Ansatz eng verflochten ist mit Google-Earth und anderen Google-Diensten. ModelerMJ hat jetzt angeboten und angekündigt, auf diesem Ansatz basierend ein Softwarewerkzeug für Streckenbauer zu entwickeln. Langjährige TransDEM-Nutzer werden möglicherweise bemerkt habe, dass ich sehr zurückhaltend bin, wenn es um engere Kopplung mit Internet-Diensten von Google und anderen Anbietern geht. Die beiden Clients für Onlinedienste in TransDEM, WMS und Kachelkarten, arbeiten auf der untersten Ebene des HTTP-Protokolls, ohne Benutzerkonto, ohne API, ohne Cookies, ohne jede Übertragung persönlicher oder „statistischer“ Daten. Aus dem selben Grund ist auch die Kopplung mit Google-Earth eine sehr lose. Sie beschränkt sich auf den rein lokalen Transfer simpler JPEG- und Placemark-Dateien. Unter Beibehaltung dieser Datenschutzpolitik bedeutet das, dass auch geländegeformte UTM-Kacheln auf jede Abhängigkeit von Google und Co. verzichten müssen. Bei genauerem Hinsehen sollte TransDEM eigentlich schon alles selbst bieten, was hierzu an Daten benötigt wird. Diese Woche habe ich das nun näher untersucht und ein wenig probiert. Folgendes ist dabei herausgekommen, die erste individuell geformte UTM-Kachel in TransDEM, im wohlbekannten Tal der Wupper zu Müngsten: Im Moment ist dies noch ein reiner Laborversuch, aber ich plane, diese Funktionalität in die nächste Version von TransDEM einzubauen. Sie wird „3D UTM-Kacheln“ getauft. Die bisherigen Kacheln werden als Alternative erhalten bleiben, zukünftig bezeichnet als „2D“. 2D- und 3D-Kacheln werden so kompatibel wie möglich werden, einschließlich der beiden Größen 1000 und 500m. Wie einleitend bereits bemerkt, die Fertigung der 3D-Kachel wird rechenintensiv. Für jede Kachel fallen drei zusätzliche Schritte an:
Wenn alles nach Plan verläuft, wird der einzig sichtbare Unterschied – abgesehen von der größeren Rechenzeit – eine neue Auswahlmöglichkeit als 2D/3D-Radioknopf im UTM-Kachelexportdialog sein. Noch zwei Anmerkungen:
Wie immer möchte ich keinerlei Prognosen über den Zeitbedarf zur Umsetzung abgeben. Wie oben erwähnt, im Moment ist es ein Labormuster, eine bestandene Machbarkeitsuntersuchung, mit einer ganzen Reihe von Ideen für das endgültige Design, aber mehr auch nicht. Die eigentliche Arbeit beginnt erst. |
Author: | geophil [ 12 Nov 2013 19:25 ] |
Post subject: | Re: 3D-UTM-Kacheln |
Die Implementierung macht Fortschritte. Das Texturmesh wurde zum richtigen 3D-Objekt, mit Unterbau und individuell triangulierten Seitenwänden, siehe die folgenden beiden Bilder aus dem Mesh Viewer. Die 3D-Kacheln wird es wie bisher bei 2D als 1000m- oder als Vierergruppen von 500m-Kacheln geben. (Mit 500er Kacheln und 4096-Pixel-Textur lassen sich Objekte bis zu 10cm auflösen.) Bei den 500er Kacheln liegen die Ankerpunkte auch weiterhin an den Schnittpunkten der 1000m-UTM-Gitterlinien. Das bedeutet, dass auch zukünftig mit Ausnahme der Südwestkachel die anderen beim Einbau um 90° bis 270° gedreht werden. Dadurch können exakt dieselben Texturen wie für die 2D-Kacheln verwendet werden. Nicht eine Zeile Code muss somit für die Texturgenerierung geändert werden. Außerdem habe ich Vertex-Normalen hinzugefügt, was Schattierung im Surveyor ermöglicht, man vergleiche das folgende Bild mit denen aus dem ersten Beitrag zum Thema. (Der Mesh-Viewer unterstützt anscheinend nur Umgebungslicht - ambient - und ignoriert die Normalen.) Schließlich noch ein Bild aus der Müngsten-Teststrecke, die hier komplett mit 3D-Kacheln versehen wurde. Einen Kachelbaustein habe ich angehoben, um die quadratische Fliesenstruktur zu illustrieren. |
Author: | geophil [ 17 Dec 2013 21:32 ] |
Post subject: | Re: 3D-UTM-Kacheln |
(Mit etwas Verzögerung zum englischen Gegenstück dieses Beitrags vom letzten Wochenende) In der nächsten Version von TransDEM wird es die dreidimensionalen UTM-Kacheln geben. Deren Oberfläche entspricht der Geländeform. Die 3D-Kacheln werden damit im hügeligen oder gebirgigen Gelände deutlich handlicher als die flachen, zweidimensionalen Kacheln, die wir bisher haben. Als Streckenbauhilfe könnten die 3D-Kacheln die Rolle übernehmen, die bisher die Bodentexturen innehatten. Daraus ergibt sich die Frage, wie dann die Bodentexturen zukünftig genutzt werden sollen. Für sie könnte eine neue Aufgabe gefunden werden. Wie wäre es mit Hintergrundtexturen? Wenn man da eine geeignete Quelle nutzt – Orthofotos/Luftbilder bieten sich an – könnte man die Geländeoberfläche in den Farben anpinseln, die sich auch in der Natur finden, und so eine Menge Arbeit sparen. Für Orthofotos/Luftbilder sind die eingebauten und mitgelieferten TransDEM-Bodentexturen allerdings weniger geeignet, denn sie sind ausgerichtet auf topographische Karten, die mit wenigen Farben auskommen. Orthofotos benötigen andere Farben und auch deutlich mehr davon. Das erfordert einen neuen Satz von Texturen. Das Prinzip der Bodentexturierung aus Geodaten in Trainz – unverändert seit HOG-Zeiten – basiert darauf, eine Palette einfarbiger Texturen festzulegen und für jeden Rasterpunkt auf dem Baseboard diejenige Texturfarbe zu bestimmen, die der Vorlage (Karte oder Luftbild) an dieser Stelle am nächsten kommt. In TransDEM – wie zuvor in HOG – kann man einen eigenen Satz Bodentexturen einsetzen. ModelerMJ hat vor einiger Zeit bereits einen solchen Satz erzeugt, ebenfalls für Luftbilder, und dafür jedoch eine universelle Farbpalette mit nach meinem Kenntnisstand insgesamt 140 Farben gewählt. Für meine zugeschnittenen Luftbildtexturen habe ich mich für einen Umfang von 128 Farben entschieden. (Wir können jedem Baseboard maximal 250 verschiedene Bodentexturen zuweisen. Bis zu 128 davon würde TransDEM vergeben, also blieben mindestens 122 für eigene Zwecke.) Um die einzelnen Farbwerte zu bestimmen, habe ich eine kleine Sammlung unterschiedlicher Luftbilder von Orten rund um den Globus angelegt, und diese mit einem Octree-Quantisierer verarbeitet, der meine spezifische Farbpalette erzeugt. Das sind meine Ausgangsbilder (hier für die Darstellung verkleinert): Und dies ist das Ergebnis, wenn man diese Bilder mit meiner Farbpalette transformiert, als Gegenprobe dafür, wie gut die Farbauswahl gelungen ist. Das Original hatte 197352 verschiedene Farbwerte, nach der Transformation blieben davon genau 128. Das ist die Farbpalette, die dabei entstanden ist: Um einen eigenen Satz Bodentexturen nutzen zu können, benötigt man neben den Texturobjekten selbst noch eine Abbildungstabelle in Form einer Textdatei, in der RGB-Werte den Textur-KUIDs zugewiesen werden. Code: ... rgb 183,198,180 kuid <KUID2:126773:21208:1> rgb 226,179,156 kuid <KUID2:126773:21209:1> rgb 198,185,196 kuid <KUID2:126773:21210:1> rgb 229,197,155 kuid <KUID2:126773:21211:1> ... Orthofotos/Luftbilder als Bodentexturen In Trainz werden immer unscharf und verwaschen aussehen, weil die Auflösung nun mal nur 5 oder sogar 10 m per Pixel, d. h. per Baseboard-Vertex beträgt. Als Streckenbauhilfe ziemlich ungeeignet. Allerdings werden mit den 3D-UTM-Kacheln die Bodentexturen als Vorlage im Surveyor ja nicht mehr unbedingt benötigt. Stattdessen können wir sie nutzen, um sehr effizient das gesamte Terrain mit einem Farbanstrich zu überziehen, der zumindest für die Baseboards im Hintergrund vielleicht sogar die einzige Texturierung ist, die diese Baseboards je erfahren werden. Daraus folgt, dass Orthofotos/Luftbilder als Bodentexturen somit als endgültige Texturierung in Betracht kommen. Diese Texturen werden dann Teil der fertigen Strecke. (Aber Vorsicht, hier können Urheberrechtsfragen noch eine Rolle spielen.) Weil sie auf Dauer angelegt sind, erhalten meine neuen Texturen für diesen Zweck kein 10m-Raster mehr. Bei einem realen Streckenprojekt würde man zudem auch auf das Zeichnen des (violetten) 1000m-Rasters verzichten. Das orange 10m- (und violette 1000m-)Raster wird zukünftig übrigens als Option für die UTM-Kacheln angeboten. Einige Beispielbilder: |
Author: | geophil [ 29 Dec 2013 22:11 ] |
Post subject: | Re: 3D-UTM-Kacheln |
Ein weiterer Versuch mit 3D UTM-Kacheln und Ortho-Fotos. Das folgende Beispiel ist der Bonneville-Staudamm am Columbia River, Bundesstaatengrenze Oregon/Washington. Die Ecke habe ich schon früher benutzt um zu experimentieren und Funktionalität zu erläutern. Die Luftbilder, die jetzt zum Einsatz kamen, stammen vom USGS und sind zu finden unter "NAIP National Agriculture Imagery Program". Die USGS-Bilder habe ich gewählt, weil sie frei verwendbar sind und nicht unter Urheberrecht stehen. Allerdings werden diese Bilder im Format JPEG2000 (.jp2) geliefert, das von TransDEM nicht unterstützt wird. (JPEG2000 steht zwar schon länger auf meiner Aufgabenliste, aber für die anstehende Version 2.5 wird das noch nichts.) Für diesen Test habe ich das .jp2 manuell in gewöhnliches .jpg konvertiert (IrfanView) sowie aus dem Original mit GDALinfo die Metadaten ausgelesen, und mit deren Angaben einen World-File erzeugt. Jpg-Bild und World-File reichen TransDEM für die automatische Georeferenzierung. Das DEM hat 1/9 Bogensekunden Auflösung. Deshalb habe ich die 3D UTM-Kacjheln mit 5m-Gitterweite anlegen lassen – was ewig dauert. Außerdem habe ich als Absteckhilfe das 10m-Gitter auf die Textur zeichnen lassen. Es ist eine recht überschaubarer Landschaftsausschnitt von etwa 70 Quadratkilometern: Ein paar Eindrücke mit den Luftbildtexturen auf 3D-UTM-Kacheln. Luftbildauflösung ist 1 m per Pixel: Interessanterweise ist die Zeichentiefe für Objekte in TS12 deutlich höher als für das Terrain selbst, das auf Maximum 5km steht. Derselbe Blickpunkt wie zuvor, aber TransDEM-UTM-Layer ausgeschaltet: |
Page 1 of 1 | All times are UTC + 1 hour |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |