Erstellen von Mesh-Terrain mit dem Programm TERRABUILDER am Beispiel von Petersdorf
 

Um eigene Mesh-Texturen in den FS2000 mit dem Programm TERRABUILDER zu erstellen benötigt man natürlich erst mal eine entsprechende Vorlage. Nehmen wir einmal an, wir haben ein tolles Luftbild unseres Heimatflugplatzes und wollen daraus eine Bodentextur für den FS2000 erstellen.

Als erstes ist es nötig das Bild so umzuwandeln dass es im TERRABUILDER und im FS2000 verwendet werden kann. Das Bild muss hierzu im BMP- Format mit 256 Farben vorliegen. Weiter ist zu beachten dass die Pixelzahl in Länge und
Breite ein Vielfaches von 256 betragen muß, also z.B. 256*256, 512*1024, 1280*2048, u.s.w.. Das Bild ist also erst mal in ein derartiges Format zu bringen, was mit einem entsprechenden Grafik-Programm möglich ist. Gleichzeitig sollte man sich auch Gedanken über die Auflösung der Bodentextur, welche sie im im FS2000 haben soll, machen.

Der FS2000 verwendet eine Auflösung von ca. 3 m pro Pixel. Diese Auflösung wäre zwar, um ein einheitliches Bild zu erhalten auch anzustreben, da z.B. aber mein Rechner (333MHz , Bj. 1989 (nicht 98)) mit eine Auflösung von ca. 10 m pro Pixel besser zurecht kommt, wollen wir mal im Beispiel bei ca. 10 m pro Pixel bleiben. Der benötigte Speicherplatz für die Texturen ist dann auch nur ein zehntel gegenüber dem mit 3 m pro Pixel. Für ein Bild mit 1024*1024 Pixeln das bei einer Auflösung von 10 m pro Pixel eine Fläche von 10*10 km abdeckt benötigt man schon 1 MB Speicherplatz nur für die Sommertextur.

Für Petersdorf haben wir statt einem Luftbild einen Screenshot von einer vorhandenen Petersdorf-Szenerie erstellt und verwenden die so erhaltene BMP-Datei für die Bodentextur.

Als Nächstes sind nun die Nord-, Süd-, Ost- und West-Koordinaten der Bildränder in Erfahrung zu bringen. Hierzu kann man topographische Karten und/oder den FS2000 verwenden.

Weiter sollte man sich Gedanken darüber machen welche Auflösung wir für die Darstellung der Bodenstruktur brauchen. Die Bodenstruktur wird durch Höhenverknüpfungspunkte hergestellt, im TERRABUILDER als NODEs (=Knoten) bezeichnet. Das Programm TERRABUILDER teilt defaultmäßig die Texturen in Blöcke von 256*256 Pixel genannt
CHUNKs (=Brocken (Stinktier=Skunk)) auf. Im SCASM-Code gibt jeder CHUNK einen Area- Block mit mindestens 4 NODEs. Dies ist die geringste Auflösung und entspricht dann bei einer Auflösung von 10 m pro Pixel - einem NODE oder Höhenpunkt - pro 2.5 km, ist also nur für gleichförmiges Gelände zu verwenden. Im TERRABUILDER kann man wählen von 1 NODE pro CHUNK bis 256 NODEs pro CHUNK in Verdopplungsschritten, also 1,2,4,8,16,32,64,128 oder 256 in horizontaler und vertikaler Richtung. Default ist 4 NODEs in beiden Richtungen, dies entspricht dann 625 m Abstand der NODEs bei 10 m Auflösung pro Pixel. Mit 16 NODEs pro CHUNK kann man somit einen Hügel mit einem Fußdurchmesser von 300 m erstellen.

Um dem TERRABUILDER das Höhenprofil mitzuteilen braucht man noch eine 256-grauton- BMP-Datei. Wenn wir uns für eine Ortsauflösung von max. 16 NODEs pro CHUNK entschieden haben und eine Textur-Vorlage mit 1024*1024 Pixeln haben, muß die Grauton- BMP-Datei, da wir 4*4 CHUNKs (1024/256=4) bekommen, eine Größe von 64*64 Pixel haben (4*16=64). Jedes Pixel entspricht dann eine Höhenangabe von 0 bis 255 Einheiten. Im TERRABUILDER kann man eine Mindesthöhe angeben ab der die Höhe gerechnet wird, sowie den Bereich ab dieser Mindesthöhe der von der Grauton-Datei abgedeckt wird.

Im Bereich von Petersdorf ist die tiefste Stelle nach Karte bei ca. 340 m  und die höchste Stelle bei ca. 570 m.  Im FS2000 liegt die tiefste Stelle bei 382 m und die höchste bei 467 m. Die Runway befindet sich in 417 m Höhe. Nun würden wir zwar gerne die Runway auf der FS2000 – Höhe belassen (gibt sonst nur unnötigen Ärger), haben aber ein kleines Problem mit der Umgebung vom Flugplatz Petersdorf, die eine Höhe von 457.8 m aufweist und Störungen verursacht. Um diese Störungen zu umgehen müssen wir die den Flugplatz auf diese Höhe anheben, da man meist nicht so gut nach unten "flatten" kann sondern besser nach oben. Wir müssen also die Runway auf dieser Höhe ansiedeln und die nähere Umgebung mit einer AreaN16-Anweisung auf der gleichen Höhe großzügig absichern.

Weiter wollen wir die tatsächlichen Höhenunterschiede so in etwa richtig wiedergeben (wir wollen ja eine möglichts realistische Darstellung ) und zum dritten über der FS2000-Oberfläche bleiben (sonst können wir die original FS2000-Oberfläche bewundern). Die niedrigste Höhe die wir noch darstellen wollen ist also ca. 361 m, die höchste 573 m. Die Differenz beträgt dann 212 m und wir können 256 verschiedene Höhen darstellen. Wir haben also eine Rasterung von 212/256= 0.83 m. Auf den Zentimeter genau können wir nur eine Höhe darstellen, sinnvoller Weise nehmen wir hier die Höhe der Runway. Die Höhe der Runway war 458 m, die tiefste Stelle 360 m, (458-361)*0.83=81, somit ist die Grundfarbe der Grauton-BMP- Datei die Nummer 81, die Mindesthöhe 361 m und der Höhenbereich ab dieser Höhe geht von 0 m bis ca. 220 m.

Nun können wir noch die Farbzahlen ausrechen die den Höhen der Gipfel und der Täler entsprechen die wir einzeichnen wollen, und dann können wir dir Grauton-BMP-Datei erstellen. Den Bereich um die Runway belassen wir in der Farbe 81 damit alle Flugplatz- Objekte die gleiche Höhe haben (macht die Höhenanpassung der Objekte einfacher).

Nunmehr kann man den TERRABUILDER starten und mit Photowizard ein neues Projekt anfangen. Anzugeben sind der Verzeichnis und Name der TEXTUR-Datei, die Koordinaten der Kanten der Textur und ein Prefix für die Texturen. Da wir ja schon die Grauton-Datei erstellt haben, können wir diese auch angeben (kann man auch später machen). Da wir für die Grauton-Datei die gleiche Lage wie für die Textur vorgesehen haben, können wir die Koordinaten der Textur übernehmen, sonst muss man die Koordinaten der Grauton-BMP- Datei angeben. Weiter sind die Höhen anzugeben, hier also 0 m für Min und 220 m für Max.. Wenn wir eine Grauton-Datei angeben haben , berechnet TERRABUILDER die Höhenangaben der NODEs.

TERRABUILDER wechselt nun zum Hauptbild und wir haben nun Gelegenheit unsere Textur zu bewundern. Nebenbei können wir auch kontrollieren ob unseren Bergen überhaupt eine NODE zugewiesen wird, durch Aktivierung des entsprechenden Knopfes. Nur die Höhenangaben denen eine NODE zugewiesen ist werden dem FS2000 mitgeteilt!. Gelangen wir nun zu der Erkenntnis, dass die Dichte der NODES doch nicht ausreicht weil vielleicht kein einziger Berg eine NODE erhalten hat, so dass eine flache Landschaft zu befürchten ist, so müssen wir daran gehen die Eigenschaften der CHUNKs zu ändern. Will man eine CHUNK ändern doppelklickt man auf die entsprechende CHUNK. Es erscheint dann ein Auswahlmenu mit „CHUNK properties". Man kann auch mehrere CHUNKs zusammen auswählen oder auch alle gleichzeitig. Hierzu muss man beim Anwählen die Shift-Taste gedrückt halten. Hat man gleichzeitig alle CHUNKs ausgewählt, kann man auch die Basishöhe ändern.

Falls wir irgendwann zu der Meinung gekommen sind etwas vernünftiges produziert zu haben sollten wir das Projekt abspeichern.

Weiter ist auch der SCASM-Code zu erstellen. Hiebei ist zu beachten dass TERRABUILDER beim ersten Aufruf auch die Texturdateien mit dem Prefix welches wir angegeben hatten erstellt. Bei weiteren Aufrufen nicht mehr. Kommt man also zu der Auffassung dass die Texturen doch recht vermurkst sind und man lieber bessere haben möchte, so muss man mit dem Projekt wieder von Vorne beginnen. Die Grauton-Datei mit den Höhenangaben kann man dagegen beliebig laden und entladen, die Texturen werden davon nicht beeinträchtigt.

Als Nächstes wäre dann aus der SCASM-Datei eine BGL-Datei zu erstellen und die BGL- Datei und die Textur-Dateien im FS2000 zu installieren.

Wenn soweit alles klar ist kann man anfangen die Szenerie zu testen.

Erscheint die Szenerie überhaupt im FS2000 an der Stelle wo wir meinten sie plaziert zu
haben? Stimmt die Höhe?

Sind die Berge durchsichtig? Wenn ja, hat man vielleicht PerspectiveCall2 statt PerspectiveCall gewählt. PerspectiveCall2 macht die Texturen durchsichtig was gut für Ebenen ist, PerspectiveCall macht die Berge undurchsichtig.

Kann man durch die Berge hindurchfliegen? Hier stört vielleicht eine Flatten-Anweisung. Im Bereich von Mesh-Terrain darf nicht geflatted werden wenn das Mesh-Terrain eine harte Oberfläche haben soll.

Sind alle Objekte verschwunden oder hängen sie im Himmel? Höhenangaben der Objekte kontrollieren! Objekte müssen die Höhenangaben in abs. haben, nicht in rel.. Natürlich muss die Höhenangabe auch stimmen.

Als Nächstes ist die Einbettung der Szenerie in die Umgebung zu kontrollieren. Hierzu sind die Kanten der Szenerie abzufahren.

Da es eventuell einfacher ist die Höhenangaben in der SCASM-Code-Datei zu ändern als in der Grauton-BMP-Datei die richtigen Grautöne zu finden wollen wir uns mit der Darstellung von Höhenangaben im SCASM-Code befassen. Die Daten der einzelnen CHUNKs sind jeweils in einer Matrix dargestellt. Um welchen CHUNK es sich handelt kann man am Namen der Texturdatei ablesen, die ja durchnumeriert sind. Die Textur PE00000.BMP entspricht der linken unteren Ecke der Szenerie. Die Numerierung geht von links nach rechts und von unten nach oben. Bei den Datentabellen ist zu beachten dass die oberste Reihe die südlichte ist, die unterste entsprechend die nördlichste im CHUNK. Das Ganze steht also auf dem Kopf. Bei den Spalten ist aber richtig herum Links im Westen und Rechts im Osten.

Da wir bei einer Textur von 1024*1024 Pixel insgesamt 16 CHUNKs erhalten gibt es pro Kante  4 CHUNKs.

Wenn wir die westliche Kante unseres Gebietes anpassen wollen sind somit die CHUNKs mit den Texturen PE00000, PE00004, PE00008 und PE00012 und hier jeweils die linke Datenspalte zu bearbeiten.

Bei der nördlichen Kante sind die CHUNKs mit PE0012, PE00013, PE0014 und PE0015, hier jeweils die unterste Datenreihe anzupassen.

Die südliche Kante PE000 PE0001, PE0002, und PE0003 jeweils die obertst Datenreihe

Die östliche Kante PE03, PE007, PE0013 und PE0015 jeweils die rechte Datenspalte.

Zum Anpassen muss überprüft werden ob die Kante in der Luft hängt oder eher im Boden versenkt ist. Ist sie zu hoch ist der Zahlenwert zu senken oder wenn die Kante als zu niedrig erscheint zu erhöhen. Es sind nur ganze Zahlen erlaubt. Die Höhe einer NODE ergibt sich aus der dieser NODE zugeordneten Zahl multipliziert mit dem Scale-Faktor in der RefPoint-Anweisung plus der in der RefPoint-Anweisung angegebenen Höhe in metern (E= 361.00 (oder so) )

Beim Anpassen ist zu bedenken, dass die Kanten der einzelnen CHUNKs die gleichen Höhen aufweisen sollen wie die Kanten der jeweils benachbarten CHUNKs, sonst gibt es unschöne Löcher in der Textur.

Anschliessend wir abgespeichert, mit SCASM kompiliert und dir BGL-Datei in das richtige SCENERY-Verzeichnis kopiert. Im FS2000 wird die Scenerie neu geladen und das Ergebnis kontrolliert und falls nötig verbessert.

Falls jetzt jemand glaubt dass das alles nicht funktioniert: Die Szenerie Petersdorf gibt es wirklich und wird unter der Bezeichnung PETEMESH als Download angeboten bei:

http://home.t-online.de/home/Falko.Dienstbach