Grundsätzliches zur X-Plane 10 Szenerie-Entstehung und Funktionsweise

Durchschnitt: 5 (4 Bewertungen)

Originalartikel von Andras (alpilotx) im Forum von Aerosoft HIER

In diesem Beitrag möchte ich allen ein gewisses Grundwissen über die allgemeinen Begriffe / Funktionsweise der X-Plane Scenery vermitteln. Dies soll dabei helfen Zusammenhänge besser zu verstehen, oder auch um häufig gestellte Fragen zu dem Thema (die sich häufig im Kern sehr ähnlich sind) zu beantworten.

 

Einen recht ausführlichen Beitrag dazu (allerdings in Englisch) hatte ich mal vor gut 1 1/2 Jahren hier:

http://xsimreviews.c...n-mr-x-terrain/

 

Man muss grundsätzlich zwischen verschiedenen Grundelementen in der Landschaft unterscheiden, insbesondere was die Art ihrer "Kodierung" in den Scenery-Files (DSF) anbelangt. Denn rein optisch kann man diese nicht unbedingt auf Anhieb unterscheiden, wenn man die Grundprinzipien nicht genau kennt (und auch dann kann das was man Sieht einen Täuschen). Damit meine ich, dass wenn z.B. Häuser (also 3D Gebäude) oder Bäume in der Gegend herumstehen, diese auf verschiedene Art da hinkommen können. Hier nur eine kleine Zusammenfassung der Möglichkeiten:

Das sind dann im Wesentlichen die Möglichkeiten die man zur Darstellung von 3D Elementen in der Landschaft hat.

 

Wichtig ist, dass diese Elemente sich überlagern können wenn man seine Scenery nicht mit einer Base Mesh ausliefert (eine Base Mesh beinhaltet bis jetzt nur die Global Scenery, HD Mesh Scenery oder Fototapeten von SImHeaven/Zonephoto/etc.). Wenn also eine OSM2XP basierte Scenery (welche "nur" die ganzen FAC Gebäuden und FOR Wälder liefert) nicht explizit andere Elemente einer - in der Reihenfolge - drunter liegenden Scenery (z.B. der Global Scenery / HD Mesh Scenery oder Fotoscenery mit eingebautem Autogen / Wäldern) ausblendet (EXCLUSION) sich diese visuell vermischen. So war es bisher z.B. mit PilotBalus OSM2XP Scenery wo das Autogen (AGS) der Global Scenery nicht ausgeblendet wurde (per EXCLUSION) ... In Zukunft wird OSM2XP hier die Verbesserung bieten (bzw. hat es schon - PilotBalus "kämpft" bereits damit), dass es die EXCLUSIONS (das sind einfach einzelne oder eine Vielzahl rechteckiger Bereiche beliebiger Größe) selektiver definiert (im Zweifel sehr viele, sehr kleine), wodurch möglichst Autogen (AGS) nur noch da erscheint (weil da nicht ausgeblendet wird) wo OSM2XP aus den OSM Daten keine Häuser ableiten kann. Übrigens - wie ich schon vorher andeutet - gelten solche Vermischungen auch für alle anderen 3D Elemente ... so könnten sich im Prinzip auch Wälder (FOR) aus verschiedenen Scenerys vermischen, wenn die höher gelegte Scenery die unter ihr liegenden Wälder nicht explizit per EXCLUSION ausblendet (für Gewöhnlich wird OSM2XP also jeweils eine forest exclusion mitbringen, welche für den gesamten 1x1 Grad Bereich der DSF die tiefer liegenden Wälder ausblendet).

 

Was auch noch zur Verwirrung führen kann ist, dass in jeder Scenery (DSF) so ziemlich alles oder nichts drin sein kann. Es kann in einer DSF alles definiert sein was man sieht, oder aber es die visuellen Elemente stehen alle in eigenen DSFs (und man hofft das durch deren Reihenfolge - Layer - und exclusions diese dann am Ende korrekt "gemischt" werden bei der Darstellung).

Wie man sieht, gibt es viele Kombinationsmöglichkeiten, und die Reihenfolge (Layer) plus die mitgelieferten Exclusions in der jeweiligen Scenery bestimmen letztendlich, welche "Mischung" man letztendlich als visuelles Ergebnis durch X-Plane präsentiert bekommt.

 

Dabei habe ich bis jetzt die Themen wie Landclass und Base Mesh noch nicht angesprochen.

 

Die Base Mesh ist im Prinzip nichts anderes als ein recht großes, unregelmäßiges (ein wichtiges Feature von X-Plane!) Gitternetz (aus Dreiecken), welche durch ihre "Krümmung" das Aussehen der Erdoberfläche definiert. Man kann sich mit der Grundidee z.B. hier vertraut machen: http://www.cadtutor....d-modelling.php . Wichtig in X-Plane 10 ist aber, dass witziger Weise diese Mesh in den DSF nicht mehr (entgegen XP8/9) als echtes 3D Gitternetz definiert wird, sondern nur als ein flaches, 2D Gitter. Die 3D Form (also die Höheninformation) bekommt sie erst on-the-fly in XP10! Denn in den DSF Files wird auch noch eine normale, Raster Höhenkarte (DEM --> http://de.wikipedia.org/wiki/SRTM) mitgeliefert. Das kann man sich dannso vorstellen, als ob das Raster-Höhenmodell eine Sandburg ist (also die Höheninformation der realen Welt) über die das flache Gitternetz quasi wie ein Tuch gelegt wird, welche daraufhin die Form der drunter liegenden Sandburg annimmt.

 

Nun wird es aber noch komplizierter. Denn, so einem simplen Gitternetz kann man an sich schwierig viele, verschieden Texturen zuordnen (so ist das nun mal in der OpenGL/DirectX/etc. Welt fder Computergrafik - man braucht abgegrenzte "Primitive" denen man die Texturen zuteilt). Daher wird das Gitternetz intern nicht zusammenhängend, sondern als eine Zusammensetzung von sehr vielen einzelnen "Flicken" wie ein "Flickenteppich" aufgebaut. Denn diesen kleinen Dreiecks-Untergittern (die Flicken) kann man dann die Texturen zuordnen (egal ob das nun Fototexturen oder die generischen Texturen der Global Scenery sind). Man kann (bzw. muss) sogar - und das macht die Global Scenery / HD Mesh so - die einzelnen Flicken sich an den Rändern überlappen lassen. Dadurch erreicht man dann durch Texturüberblendung die weichen Übergänge in der bei den generischen Texturen der Global Scenery!

 

Und nun fehlt noch das letzte Element im Puzzle, die sogenannten TER Definitionen. Denn wie vielleicht oben aufgefallen ist, tut die X-Plane Scenery Niemals die Texturen oder 3D Elemente direkt in der Scenery mit liefern. Diese werden IMMER über irgendwelche Defintion-Files (OBJ/AGS/STR/FOR/FAC/TER) referenziert. Sprich, im DSF steht nur, dass an Punkt X ein OBJ steht, aber wie das OBJ aussieht, steht im OBJ. Oder da steht, dass da ein Polygon Wald durch ein FOR gefüllt wird, aber welche Texturen in welcher Verteilung zum Zuge kommen steht in dem FOR File beschrieben. Oder auch bei dem Autogen steht da nur, dass eine bestimmte Fläche von AGS ausgefüllt wird, aber wie dann die komplexe Verteilung der Objekte darin aussieht definiert eben das AGS. Sprich, dass sind immer solche Abstraktionsstufen welche die DSF von den letztendlichen visuellen Elementen (Texturen / Objekte und deren komplexe Mischung) entkoppelt.

 

Genau so ist es auch in der Base Mesh. Dort wird den oben genannten Flicken (Dreiecks-Untergitter) jeweils nur ein TER File zugeordnet. Die genaue Information, welche Texture in welcher Art dann auf das jeweilige Flicken appliziert wird, beschreibt dann das TER File. Und darin kann dann sehr viel stehen ... nicht nur einzelne Texturen, sondern bis hin zur detaillierten Steuerung der Shader, welche diese Texturen (auch mehrere) dann überblenden, drehen, mischen etc. können.

 

Übrigens sind auch Flüsse und Wasserflächen (... auf jeden Fall bis jetzt, also ca. XP10.21) Teil der Base Mesh! Sprich,sie sind auch durch eines der vielen "Flicken" mit im Mesh defniert (und bekommen aber statt TERs einen eigenen, speziellen Oberflächentyp : nämlich Wasser). Das ist auch der Grund, weshalb Gewässer sich nachträglich nur sehr mühsam in den DSFs verändern lassen.

 

Nun fehlt nur noch die Landclass. Und dessen "Geheimnis" ist, dass sie in ihrer Rohform nirgendwo in der DSF steht! Landclass Daten hat man normalerweise als Rasterkarten mit verschiedener Auflösung vorliegen und sie stammen von verschiedenen Datenquellen (NLCD, GlobCOVER, CORINE, LCDB usw.) mit verschiedensten Qualitäten/Vorteilen/Nachteilen/Probleme. Diese Daten werden dann für gewöhnlich recht aufwändig bereinigt / umgewandelt / veredelt (mit noch weiteren Daten "gemischt") so dass sie den Anforderungen der X-Plane Scenery entsprechen. Aber letztendlich landen sie in der DSF Base Mesh "nur" noch in umgewandelter Form. Das Laminar Tool RenderFarm (http://dev.x-plane.c...gi/xptools.git/) wandelt diese Rohdaten (und noch zusätzlich Klimainformationen, Höhendaten etc. etc.) mittels eines komplexen Regelwerkes in die DSFs um. Die Rohdaten und Regeln bestimmen dann "nur", welche TERs (und damit Texturen) einem Flicken zugeordnet werden UND/ODER welcher Typ von AGS (da gibt es ja auch eine Vielfalt an Autogen Definitionen) einer Zone in einer Stadt zugeordnet werden. Das Bedeutet aber auch, dass man die Landclass Zuordnung im Sinne vom MSFS nachträglich nicht mehr wirklich verändern kann (denn die TERs und AGS sind ja bereits in der DSF Verdrahtet). Dies mag zwar als Nachteil erscheinen, hat aber den Vorteil, dass die teilweise recht komplexen Zuordnungsalgorithem (und auch Erstellung des Dreiecksgitternetzes --> Base Mesh) nicht on-the-fly erfolgen muss (und die Algorithmen können beliebig komplex sein, da deren Laufzeit sich ja nicht on-thy-fly auswirkt)!

 

Ich hoffe die Länge des Textes hat nicht alle erschlagen und zumindest einige nehmen sich die Mühe es mal durchzulesen. Es beinhaltet sicherlich bei weitem nicht alle Feinheiten von der X-Plane Scenery, aber es sollte zumindest ein halbwegs fundiertes Grundverständnis der teilweise doch etwas komplexeren Zusammenhänge bieten (und vielleicht dabei helfen das eine oder andere Missverständnis zu beseitigen/vermeiden). Natürlich bin ich auch für Anregungen / Verbesserungen / Fragen zu den Aufführungen offen :) !

Fragen zu diesem Artikel bitte an Andras auf seiner Homepage: http://www.alpilotx.net/

(Dort gibts auch die wirklich empfehenswerten HD-Meshes und weitere Verbesserungen des X-Plane)