Support overload. We are currently seeing 65% more demand for support then we normally see. We can only assume this is because more people are at home due to the corona crises. Our complete support staff is online and they are working flat out, but it will take some days before we can scale up resources. Please be patient.

Jump to content
alpilotx

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

Recommended Posts

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.com/2011/12/10/developer-interview-andras-fabian-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:

  • Objekte (OBJ) die an einen Punk gesetzt werden. Man kann beliebige Objekte (das kann ein komplexes Gebäude, statische Flugzeuge, animierte Windräder oder auch ein simpler Baum sein), die man mit einem 3D Editor erstellt hat in der X-Plane Welt positionieren (entweder absolut, also mit allen 3 Raum-Koordianten oder relati, nur mit 2 Raumkoordinaten und die Höhe wird entsprechend des Nullpunktes des Objekts im Bezug zur Landschaft gesetzt). Dies macht OSM2XP noch nicht, ist aber als neues Feature soweit ich mitbekommen habe in der Planung / Entwicklung
  • Objekte (OBJ) entlang einer Linie in regelmäßigen Abständen setzen, sogenannte Strings (STR). Ist wie vorher, nur eben dass ein vielfaches des selben Objekts eingesetzt wird.
  • Objekte als Fassaden (FAC) definieren (dies macht OSM2XP recht ausgiebig, aber auch in der default Scenery von X-Plane werden z.B. einige Hochhäuser so definiert!). In diesem Fall werden die Umrisse des Gebäudes als ein Polygon definier, und entlang dieser Umrisse baut dann X-Plane entsprechende der Definition des Fassade (in den FAC Files) das Haus auf (das kann echt simpel sein, bis hin zu - mittlerweile in XP10 - recht komplexen Hochhäusern mit OBJ Anhängen etc. etc.).
  • Wälder die eine Fläche (Polygon) ausfüllen. In diesem Fall wird in der Scenery ein Polygon definiert dem eine Forest-Definition (FOR) zugewisen wird. In letzterem wird dann festgelegt welche Bäume (also eigentlich jeweils Verweise auf Texturen) als sogenannte Billborad (Flache Texturen die immer zum Beobachter drehen, und aus 1,2,3,x Elementen über Kreuz zusammengesetzt werden) in welchem Verhältnis, mit welche Zufallsstreuung platziert werden. So werden alle Wälder in der default Scenery definiert, und auch OSM2XP tut auf dem selben Weg die Wälder einbinden. Übrigens kann man diese Wälder (FOR) nicht nur eine Fläche Ausfüllen lassen sondern auch z.B. nur entlang der Umrandung eines Polygons (kann sogar ein offenes Polygon - sprich Linie - sein!) verlaufen lassen. So lassen sich wunderbar Alleen definieren (diese Technik benutze ich in der X-Plane 10 Tree Lines and Farms Scenery und X-Plane 10 New Zealand Pro Scenery )
  • Autogen Häuser (und dieses Wort wird wohl sehr durcheinander verwendet). Dies ist eine recht spezielle Geschichte und wird bisher ausschließlich in der Default Scenery benutzt (meines Wissen - und das meinte ich schon oben - macht OSM2XP das NICHT!). Beim Autogen wird über sogenanntes Zoning (letztendlich auch nichts anderes als fest definierte Flächen, also Polygone in der DSF) festgelegt, welchem Bereich, welche Autogen Definition (AGS Files) zugewiesen werden. Dies AGS FIles sind wiederum komplexe Definitionen, welche festlegen, welche Objekte (Häuser, Bäume etc. etc. - die auch wiederum als OBJs hinterlegt sind) in welchen Bereichen der Zone, in welchem Verhältnis platziert werden können, wie diese zu rotieren sind, damit sie sich an den Rändern (wo für gewöhnlich die Straßen verlauf) ausrichten etc. etc.
  • Straßen / Bahnstrecken / Stromleitungen (NET) .... werden als 2D Linien (die Höhe wird für Gewöhnlich aus aus dem Höhenmodell abgeleitet on-the-fly) in der Scenery definiert und über einen Verweis zu den jeweiligen Definitionen im sogenannte roads.net wird festgelegt, was X-Plane aus dieser Linie dann letztendlich macht. Die Linie kann ein simples Bahngleis werden, oder Stromleitungen (das roads.net ist sehr mächtig, und kann auch wiederum einzelne OBJs als Elemente der "Liniendarstellung" einbinden ... so z.B.bei Stromleitungen die Masten etc.) oder ein Autobahn. Gerade bei letzterem wird das roads.net dann richtig kompliziert, das es ja für verschiedene Abzweigung, Brücken etc. jeweils auch definiert wie es die visuellen Elemente wie Texturen und OBJs kombinieren soll damit es halbwegs plausibel aussieht (wenn man sich mal überlegt, wie viele unterschiedlich Visuellen Unterelemente so eine reales Straßennetzwerk aufweisen kann, dürfte einem klar werden wie kopmlex das Thema ist).

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).

  • So beinhaltet z.B. eine Global Scenery (oder auch identisch meine HD Mesh Scenery), ein komplettes Base Mesh (dazu nachher noch mehr), plus alle Wälder (FOR), Straßen/Bahnstrecken/Stomlietungen (NET), Autogen Zones (AGS), evtl. einzelne Fasaden (FAC) und Objekte (OBJ).
  • Eine Fototapete kann viele Formen annehmen
    • Sie kann zum Beispiel nur die Position/Fläche (hinterlegt als Polygone) von POL Files definieren die quasi wie Aufkleber auf eine vorhandene (drunter liegende!) Base Mesh geklebt werden. Ist aber eine ineffiziente (und nicht sehr performant) Technik für große Fototapeten und wird daher gemieden.
    • Sie kann eine Base Mesh beinhalten und über TER Definitionen die Texturen den einzelnen, rechteckigen Elementen des Meshs zuordnen (wie das im Etwa geht, steht hier: http://forum.aerosoft.com/index.php?/topic/60079-simheaven-download-von-osm-und-fotoszenerien/?p=480039 ).
    • Sie kann die Base Mesh beinhalten (wie im vorherigen Punkt) UND zusätzlich auch die ganzen 3D Elemente (Wälder/Autogen/Straßen etc.) wie in der Global Scenery mit beinhalten (wir dann von dem Tool g2xpl direkt aus der Ursprungs DSF mit "rüberkopiert"). Meines Wissens sind die meisten Fototapeten auf SimHeaven von dieser Form!
  • Eine OSM2XP Scenery kann auch viele Formen haben. Aber für Gewöhnlich - bis jetzt - beinhaltet sie Wälder (FOR) und Gebäude die als Fassaden (FAC) defniert wurden, bzw./und kann einzelne Objekte (OBJ) haben die an bestimmten Punkten stehen (z.B. Windräder / Antennen etc.).Autogen (AGS) ist aber NICHT dabei!
  • Eine einfache Flughafenscenery kann wieder z.B. (da sind die Möglichkeiten ja auch vielfältig) nur aus OBJs bestehen. Oder sie kann auch paar lokale Wälder (FOR) haben, oder sie kann zusätzlich per POL "Aufkleber" lokal Fototapeten darstellen (genau dafür ist diese Technik gedacht - und da funktioniert sie auch effizient) oder oder oder ...

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.net/tutorials/terra-firma/ground-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.com/cgit/cgit.cgi/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 :) !

  • Upvote 3

Share this post


Link to post
Share on other sites
Guest

Hallo,

aufgrund der vielen Beiträge über die X-Plane 10 Szenerie, die mehr oder weniger detailliert / speziell / ausführlich usw sind, habe ich hier dieses Topic aufgemacht.

Der erste Beitrag (Post 1, hierher verschoben) ist von Andras Fabian, der für Laminar das X-Plane 10 Terrain mitentwickelt hat (AlpilotX, Mr. X-Terrain)

und gibt sehr schön und detailliert die Enstehung und Funktionsweise der Landschaft im X-Plane 10 wieder.

Natürlich können hier Fragen und weitere Beiträge gepostet werden.

Gruß Heinz Flichtbeil

Share this post


Link to post
Share on other sites

Ich drücks mal aus wie bei x-factor: ein GROOOOSSES dankeschön für die detaillierten erklärungen... quasi alles im selben Pott, das hilft :-)

Share this post


Link to post
Share on other sites

Mit Spannung deinen Beitrag gelesen Andreas. Jetzt bin auf jeden Fall ein Stückchen schlauer und auch wieder verwirrt. Ich schlafe erst mal drüber und dann passt es...

Share this post


Link to post
Share on other sites

Hallo Andras!

Ich schreibe hin und wieder ein Tutorial über die Erstellung von Objekten für X-Plane mit Sketchup, GIMP und WED (sorry, mit den anderen Tools kenn ich mich nicht so aus)

Zu finden unter: http://www.x-plane.at/drupal/TIPS

Dein Beitrag wäre eine sehr schöne Übersicht über die Struktur von X-Plane.

Darf ich den "klauen" und auf meine Seite stellen?

vlG

gerhard

Share this post


Link to post
Share on other sites

Hi Gerhar,

Ja, klar, natürlich kannst du es gerne auf deine Seite stellt. Nur bitte ich dich um eine genaue Quellenangabe (am besten Link hierher) und einen Verweis (als Quelle) auf meine Webseite (www.alpilotx.net).

Andras

Share this post


Link to post
Share on other sites

Hallo Andras!

Natürlich gerne. Ich werde den Text rüberkopieren und einen Link zu diesem Thread davor setzen.

Am Ende kommt dann der Hinweis auf Dich als Autor und der Link zu Deiner Site, OK?

Ich werd das mal basteln und schick Dir dann per PN einen Link, auf der Du die Seite sehen kannst (ohne sie im Menu zu verlinken). Dann kannst mir noch eventuelle Änderungswünsche schicken, bevor die Site öffentlich zugänglich wird.

DANKE!

vlG

gerhard

Share this post


Link to post
Share on other sites

Es gibt einen neuen, großen Artikel bei simflight.de (von mir geschrieben, mit vielen Bildern), welches mal die Grundlagen der Mesh Struktur (insbesondere, wie das mit den Landclass Informationen so funktioniert) beleuchtet. Es dürfte auch für die meisten User hier zahlreiche, interessante Details beinhalten:

  • Upvote 2

Share this post


Link to post
Share on other sites

Hallo Andras

Vielen Dank für den Beitrag und die super Bilder!

Es ist und war schon immer immens wichtig, dass Nutzer des X-Plane 10 (eigentlich aller Simulatoren) verstehen was hinter so einem System steckt.

Der Artikel gibt sicher einen super Einblick darüber.

Deshalb kann ich jedem interessierten X-Plane Flieger den Entwickler Blog von Laminar empfehlen, wer ihn noch nicht kennt, hier der Link:

http://developer.x-plane.com/

Weiter so Andras!

Share this post


Link to post
Share on other sites
Guest

Hallo Andras,

da pflichte ich Tim unbedingt bei.

Ein wirklich richtig guter Beitrag.

Sehr anschaulich geschrieben. Aüsserst empfehlenswert für jeden, der mit X-Plane 10 fliegt....

Ich habe ihn in meine Linksammlung ( http://forum.aerosoft.com/index.php?/topic/81328-linksammlung-x-plane-10-osm-world2xplane-hd-mesh-fototexturen-linksammlung/ ) mit aufgenommen, dann geht er nicht "unter" ...

Diese sich genial aufbauende X-Plane 10 Landschaft mit einer Fotoszenerie zu überdecken, ist eigentlich viel zu schade... :)

Obwohl die Fototszenerien sicher auch ihre Berechtigung haben. Zumal dann, wenn sie gut gemacht sind (keine Farbunterschiede an den Kachelgrenzen usw...)

und man genügend Platz auf der Festplatte hat...

Gruß Heinz Flichtbeil

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...