|
Jr. Member
Registriert seit: 19.06.2001
Beiträge: 20
|
Zu Bodenpolygonen im FS-X:
Wie wir alle wissen gibt es für den FS-X noch keine Tools mit denen man Bodenpolygone, Wasserflächen und Straßen usw, im FS-X "Shapes" genannt erstellen kann.
Weit weniger bekannt dagegen ist es, dass man, insbesondere für kleinere Objekte, diese Shapes auch per Hand programmieren kann. Neben dem im Windows vorhandenen Editor und natürlich dem FSX-SDK benötigt man nur noch das Programm "xml2shp" von Winfried Orthmann. Dieses Programm erzeugt aus dem editierten xml-Code die für den shape-file-compiler "shp2vec" benötigten Input-Dateien.
Verarbeiten kann das Programm "xml2shp" Shapes vom Typ: "exclusion", "airportBounds", "waterPoly", "gpsPoly", "landclassPoly", "stream", "shoreline", "road", "freeway", "railway" und "utility".
Die eigentliche Arbeit besteht nun darin sich die Koordinaten für die diversen Shapes zu besorgen. Füchten wurde ja mit "Airport for Windows" erstellt, hieraus könnte man die benötigten Koordinaten erhalten.
Für den xml-Code werden die Koordinaten in Grad und in der Reihenfolge Längengrad, Breitengrad und Höhe in meter eingegeben. Für jede Shape muss man sich dann noch aus der Liste "VectorShapeGuids" ein zur Shape passendes GUID auswählen. Für Füchten hier beispielhaft der xml-Code für 3 landclassPoly's welche die autogen-Bäume von der Runway weghalten sollen, 2 landclassPoly's die einen kleinen Wald erstellen, eine aus 4 Punkten bestehende Strasse und ein waterPoly. Die Höhenangaben sind bis für das waterPoly auf 0 gesetzt da sie ohnehin nicht verwendet werden, für das waterPoly für alle Punkte auf 47.9 gesetzt, damit die Wasserfläche eben ist. - <!-- Anfang von FueGr.XML -->
<shapes>
<landclassPoly>
<!-- LandClassPoly_Airfield1 -->
<guid>{5A9F6657-1FEF-414D-8853-305512132BB2}</guid>
<coordinates>
07.446073472,52.149544080,0
07.452656083,52.151646139,0
07.455019750,52.152080500,0
07.455289972,52.151164750,0
07.446438417,52.149110556,0
</coordinates>
<coordinates>
07.455019750,52.152080500,0
07.459635833,52.153206472,0
07.459904778,52.152234889,0
07.455289972,52.151164750,0
</coordinates>
<coordinates>
07.446324000,52.148442778,0
07.444551278,52.148310694,0
07.443868583,52.150223389,0
07.445140778,52.150617083,0
07.446073472,52.149544080,0
</coordinates>
</landclassPoly>
<landclassPoly>
<!-- LandClassPoly_Cool_Conifer_Forest -->
<guid>{E6DD4DEB-C612-46C6-9AEA-1AE33A7D42A6}</guid>
<coordinates>
07.456503361,52.15071222,0
07.459727667,52.14986581,0
07.459423444,52.14959242,0
07.459057417,52.14937078,0
07.456843333,52.15021700,0
</coordinates>
<coordinates>
07.456843333,52.15021700,0
07.459057417,52.14937078,0
07.458066861,52.14920106,0
07.457109694,52.14918933,0
07.456161806,52.14929697,0
07.455759694,52.15017269,0
</coordinates>
</landclassPoly>
<road>
<!-- Roads_Asphalt_1_Lane_Divided_Median -->
<guid>{ED5528D5-B6B4-4D59-A49F-02D6BCCD0D4C}</guid>
<coordinates>
07.443933889,52.15030419,0
07.454260611,52.15361767,0
07.454504139,52.15368842,0
07.461119667,52.15475014,0
</coordinates>
</road>
<waterPoly>
<!-- Legacy_LandWaterMask_Water_Flatten -->
<guid>{F4775962-DA14-4BF6-9C70-672420752870}</guid>
<coordinates>
07.454809733,52.15406642,47.9
07.455400467,52.15412002,47.9
07.455473533,52.15437720,47.9
07.455300000,52.15460690,47.9
07.455126317,52.15480587,47.9
07.454916667,52.15485000,47.9
07.454767483,52.15480742,47.9
07.454732650,52.15423930,47.9
</coordinates>
</waterPoly>
</shapes>
<!-- Ende von FueGr.XML -->
Der Dateinamen soll nicht länger als 5 Zeichen sein, da "shp2vec" noch 3 Buchstaben zu dem Namen hinzufügt und der Namen maximal 8 Zeichen lang sein darf.
Die xml-Datei kopiert man am besten in ein temporäres Verzeichnis zusammen mit den beiden Programmen xml2shp.exe und shp2vec.exe. Wenn die xml-Datei und die beiden Programme sich im Verzeichnis D:\Temp befinden ruft man die Programme aus einem DOS-Fenster wie folgt auf. Das DOS-Fenster setzt man auf das Verzeichnis D:\Temp und kann dann xml2shp, wenn die xml-Datei "FueGr.xml" heisst, einfach mit: aufrufen. Für obiges Beispiel erzeugt xml2shp dann 12 Dateien die alle den Namen FueGr enthalten. Für den Aufruf von shp2vec ist das Verzeichnis anzugeben in dem sich die output-Dateien von xml2shp befinden sowie der den Dateien gemeinsame Namensteil. Man gibt auch besser -ADDTOCELL an damit nichts gelöscht wird. Für dieses Beispiel sieht der Aufruf dann so aus: - shp2vec D:\Temp FueGr -ADDTOCELL
Das Programm produziert dann, wenn alles gut geht, die Datei "cvxFueGr.BGL".
Diese BGL-Datei kann man dann in das FS-X-Verzeichnis kopieren in dem sich auch die weiteren Dateien von Füchten befinden. Danach bleibt nur noch den FS-X zu starten, sich nach Füchten zu begeben und das Ergebniss der Bemühungen zu bestaunen.
|