Ich traue mich aktuell noch nicht den finalen Import durchzuführen und das liegt an den Kurven. Wie schon im ersten Post beschrieben liegt das Problem darin, dass Nodes in OSM nicht immer mit der höchsten Genaugikeit platziert werden, was in Karten zwar nicht so auffällt. Da Gleise hohe Kurvenradien erfordern, die auch noch möglichst konstant sein sollten, kann das aber im Spiel sehr wohl zum Problem werden, wenn wackelige Kurven mit geringen Radien entstehen.


Aktuell berechne ich mir zwar Tangenten damit es keine Knicke in den Gleisen gibt, aber das war etwas improvisiert.
Daher beschäftige ich mich gerade intensiver mit dem Thema Kurvendarstellung in TPF2.
Vielen Dank an WernerK für die Aufarbeitung des Themas im Lexikon.
Kurven werden in TPF2 als Hermite-Kurven modelliert. Das sind kubische Splines, also einfache Polynome.
Ich habe etwas gebraucht, um zu verstehen, dass Hermite einfach nur heißt, dass man die Tangenten an allen Punkten vorgibt. Im allgemeinen Fall kann man das kubische Polynom aber auch anders bestimmen.
Polynome sind einfach zu berechnen und geeignet für Computerdarstellungen.
Die Geometrie von Eisenbahnstrecken folgt aber eigentlich einer ganz anderen Logik.
Kleiner Exkurs: Geometrie bei Planung von Eisenbahnen
Im Prinzip gibt es nur 3 Arten von Geometrien: Geraden, Kreisbögen und Übergänge dazwischen.
Die Übergänge werden gerne mit Klothoiden modelliert, weil diese die schöne Eigenschaft haben, dass die Krümmung (Kehrwert von Kurvenradius) linear mit der Kurvenlänge zu- oder abnimmt. D.h. wenn man mit konstanter Geschwindigkeit entlang der Bahnlinie fährt, von Gerade zu Kurve, nimmt die Krümmung nicht schlagartig, sondern linear zu. Ansonsten würde die Fliehkraft einen Sprung machen, was einen Ruck verursacht und nicht angenehm wäre.
Dasselbe passiert übrigens auch bei Straßen: Der Übergangsbogen sorgt dafür, dass ich linear das Lenkrad einschlagen kann und erst wenn der Kreisbogen erreicht ist, bleibt der Einschlag konstant.
Diese Darstellung ist viel intuitiver, da sie (im Gegensatz zur Koordinatenbetrachtung der kubischen Splines) aus der Sicht des Fahrzeugs entlang der Kurve gemacht wird. Leider ist diese Modellierung mathematisch aber schwieriger zu handhaben.
Daher werde ich mit kubischen Splines arbeiten. Trotzdem dachte ich, wäre es schön, wenn ich die Eigenschaft kontinuierlicher Krümmungen (mathematisch: 2fache Differenzierbarkeit) beibehalten kann. Das geht und heißt Natural cubic splines!
Vorher habe ich nur dafür gesorgt, dass die Tangenten an den Nodes gleich sind. Jetzt gehen aber auch die Kurvenradien stetig ineinander über. Damit haben wir Geometrien, die besser sind, als man sie beim normalen Bauen in TPF2 hat! Eine Gerade bauen und dann ein Kreisbogen - das würde in der Realität zu einem heftigen Ruck führen.
Die Herausforderung jetzt ist eben nur noch, schlecht gemappte Nodes zu erkennen und die Kurve zu korrigieren. Dank der Spline Darstellung kann ich mir den Kurvenradius an jeder Stelle der Kurve exakt berechnen. Nur wie ich die Korrektur mache, weiß ich noch nicht genau.

Das galt jetzt alles für die x-y Ebene (2D). Eigentlich habe ich dasselbe Problem aber auch in der z Ebene für die Höhen. Die Höhe entlang der Kurve ist zum Glück nur 1 dimensional. Es ist trotzdem ein bisschen anders, weil die Höhen ja erst im Spiel festgelegt werden und daher die z Werte und Tangenten in Lua berechnet werden müssen. Falls ich hier noch einen Geistesblitz bekomme, wie man den Verlauf geschickt glätten kann, erhält man vielleicht direkt passende Steigungen und muss nicht überall den Ramp Equalizer anwenden. Vielleicht muss ich das Terrain auch zwischen den Nodes abtasten. So müsste man sich ggf auch weniger Mühe in der Terrain Vorbereitung geben.
