- Offizieller Beitrag
Hier geht's ins "Eingemachte" - eine ins Detail gehende Beschreibung über die im MSFS2020 eingesetzte Technik von den Freaks der Seite FSDeveloper
High Level Overview of MSFS2020 Tech
Zum leichteren Verständis habe ich den Beitrag mit einem Translater ins Deutsche übersetzt - keine sprachlichen Korrekturen durchgeführt:
Dieser Bericht geht sehr tief in die technischen Belange des MSFS. Der eine oder andere Unterpunkt dürfte bestimmt lesenswert und informativ sein.
1. Basiert es auf FSX Technologie?
Ja. Mehr oder weniger wurde die gesamte FSX-Codebasis kompiliert, wobei offensichtlich einige Systeme ergänzt oder vollständig ersetzt wurden. Dies bedeutet, dass einige Dinge sofort "funktionieren":
* XML-Anzeigen
* SPB-Dateien
* Verschiedene Flugzeugsysteme
* Grundlegende Struktur des Simobjektcontainers
* Teile von Flughäfen (mehr später)
Andere Systeme haben sich vollständig oder wesentlich geändert:
* Gelände
* Flugzeugprogrammierung
* Atmosphäre / Wetter
* Aerodynamik
Im Wesentlichen besteht die Sim aus einer FSX-Basis (nicht MS Flight) mit vielen Verbesserungen, kombiniert mit Asobos Grafik-Engine auf DX11 (obwohl sie plattformübergreifend ist und portiert wird) sowie einer Bing-Maps-Engine und der Bongfish / Blackshark-Prozedur-Engine .
2. Status des SDK
Die Version 0.5.0 ist erschienen und kann von der Sim heruntergeladen werden (Anweisungen finden Sie in einem anderen Thread).
Sie werden feststellen, dass es sich um eine laufende Arbeit handelt, die sich noch in einer aktiven Entwicklung befindet. Das ist alles, was ich jetzt sagen werde. Wir können uns auf weitere Updates freuen und Sie sollten untersuchen, was jetzt drin ist.
Eine Sache, an die man sich erst gewöhnen muss, ist, dass die Werkzeuge im "Dev-Modus" alle in-sim sind. Es gibt keine eigenständigen Befehlszeilentools mehr zum Kompilieren verschiedener Dateiformate. Alles ist ein "Paket" und wird entweder in der Sim über die GUI oder über das Befehlszeilen-Sim-Paket-Tool Launcher im SDK erstellt.
Pakete sind ein einfaches XML-Format, das der Entwicklungsmodus analysiert und bei Bedarf verwendet, um die tatsächlichen Addon-Dateien oder Signaturen zu generieren. Leider haben wir (noch) nicht das vollständige Schema dafür und verschiedene Pakettypen befinden sich derzeit in der Entwicklung, sodass robuste Out-of-Sim-Tools möglicherweise noch nicht praktikabel sind. Abgesehen davon sollten Sie den In-Engine-Entwicklungsmodus erkunden. Er ist sehr leistungsfähig und es besteht möglicherweise kein großer Bedarf an externem Authoring.
3. Was ist mit diesen "Paketen" los?
MSFS verwendet ein vollständig virtualisiertes Dateisystem, ähnlich wie Flight, wenn jemals jemand mit einem von Steves Tools gearbeitet hat. Ein wesentlicher Unterschied besteht darin, dass die Reißverschlüsse in Ihr lokales Dateisystem extrahiert werden. Stellen Sie sicher, dass Sie bei der Installation der Sim einen benutzerdefinierten Pfad für den Addon-Inhalt auswählen. Andernfalls befindet sich dieser Pfad ganz oben in Ihren AppData-Ordnern.
Es gibt den Onestore (keine öffentlichen Details / noch unter NDA) und dann einen Community-Ordner, in dem Sie Pakete testen und verteilen können. Der gesamte Standardinhalt wird unter "onestore" installiert, aber Sie können einige davon durchsuchen.
Eine wesentliche Abweichung von früheren Sims, obwohl sie vielen modernen Spiel-Engines ähnlich sind, besteht darin, dass Sie bei vielen Dateiänderungen in Ihrem Paket, während Sie daran arbeiten, das Paket "neu erstellen" müssen, bevor die Sim es als Formular lädt der Sicherheit und Validierung. Sie werden sich ziemlich schnell an diesen Prozess gewöhnen, aber denken Sie daran, es zu tun.
Ein erstelltes Paket kann an Benutzer verteilt werden, um es in ihrem Community-Ordner abzulegen.
4. Was ist mit der Programmierung?
Obwohl dies für einige eine Quelle der Bestürzung ist, möchte ich mich nur an die Fakten zu diesem Thema halten.
XML-Messgeräte werden vollständig unterstützt, einige haben nur geringfügige Unterschiede bei der Analyse und den Systemen gemeldet, aber es handelt sich meistens um Drop-Ins.
C ++ / native Messgeräte wurden durch ein neues C ++ LLVM / WebAssembly-basiertes System ersetzt. Die Idee ist, dass Sie bei der Installation des SDK einen neuen Projekttyp (MSFS-Projekt) erhalten und diese Build-Konfiguration zusätzlich zu allen anderen Plattformen wie einer x64-Konfiguration für P3D V5 verwenden können, um auf diese Plattform abzuzielen. Sie müssen Wasm / Clang / LLVM nicht wirklich selbst kennenlernen, da dies alles mit dem SDK verschmolzen und verteilt ist und direkt in VS integriert wird.
Webassembly-Module werden als LLVM-Bytecode verteilt (viel näher an der nativen Assembly als an .NET IL). Sie werden dann beim ersten Ausführen von Innative auf Ihrem Client-Computer JIT-kompiliert. Die Asobo-Engine hakt dann ein, um dem nativen Code Funktionszeiger für Dinge wie die Funktionen gauges.h hinzuzufügen.
Sie kompilieren Ihr C ++ also immer noch über Visual Studio (2019) und zielen nur auf eine andere Plattform. Beachten Sie, dass dies derzeit eine Single-Threaded-32-Bit-Umgebung ist (Threads folgen in Kürze). Sie können weiterhin SimConnect.h und Gauges.h verwenden, die für die Arbeit unter Wasm portiert wurden, sowie die neuen MSFS * .h-Dateien. Es gibt hier kein Konzept von "Windows" oder Windows.h, was wahrscheinlich viele C ++ - Programmierer überraschen wird, die es nicht gewohnt sind, plattformübergreifende Arbeiten auszuführen. Atomics funktioniert jetzt auch, sodass jetzt Dinge ohne explizites Threading mit wenigen Änderungen erstellt werden.
Statische Bibliotheken werden jetzt unterstützt und Sie können ziemlich einfach Dinge aus der Quelle für sie erstellen, wie z. B. Boost. Denken Sie daran - keine DLLs, keine .libs, Sie müssen alle Abhängigkeiten von Drittanbietern zu .a-Bibliotheken aus dem Quellcode neu erstellen. Der Debugger ist aufgrund des linearen Wasm-Speichermodells nicht so gut, wie Sie es wahrscheinlich gewohnt sind, wird aber gerade bearbeitet.
Beachten Sie, dass dies alles eine Sandbox ist (lesen Sie WASI, um die Motivationen zu erfahren). Wenn MSFS Ihnen keine API zur Verfügung stellt, können Sie dies nicht tun. Sie können nicht auf beliebige Dateispeicherorte auf dem Host zugreifen (Sie erhalten keinen Zugriff auf einen Ordner in Ihrem Paket zum Speichern / Lesen von Daten), Sie können keine Windows-Registrierung ausführen und noch keine Webanforderungen ausführen. Dies ist eine restriktive Umgebung, die jedoch absichtlich so konzipiert wurde, dass das Umpacken und Veröffentlichen Ihrer App auf vielen verschiedenen Plattformen sehr einfach ist. MSFS hat viele plattformübergreifende Ambitionen.
In diesem System gibt es noch viel zu tun, aber es ist sicherlich eine App-Plattform für die Zukunft. Unter https://lightroom.adobe.com erfahren Sie, wie leistungsfähig Webassembly sein kann. Ja, wir führen eine Massive C ++ - Codebasis in Ihrem Browser aus.
Es gibt auch ein neues Javascript-basiertes Messsystem, das ich weiter unten genauer beschreiben werde.
5. Welche APIs erhalten wir?
Die Sim stammt von FSX, daher ist SimConnect immer noch die Standard-API (Application Programming Interface) . Tatsächlich ist es dieselbe On-the-Wire-Protokollversion. Beachten Sie, dass die TCP-Implementierung auf localhost für Named Pipes veraltet ist. Außerhalb des Prozesses können Sie entweder die neue native DLL verwenden (wie es FSUIPC getan hat) oder es wird möglicherweise bald eine statische Bibliothek geben. Es gibt auch eine Out-of-Proc .Net-Client-DLL, die mit dem SDK geliefert wird. Für In-Process müssen Sie Wasm-Module und den nativen SimConnect-Client verwenden.
Beachten Sie auch, dass es ungefähr den gleichen API-Footprint wie FSX hat. Es gibt einige wichtige Ereignisse und Simvars, die sich geändert haben und noch nicht über SimConnect dokumentiert oder verbunden sind. Dies wird sich weiterentwickeln. Dinge, die im Laufe der Jahre zu SimConnect in P3D hinzugefügt wurden, sind nicht vorhanden und können Sie überraschen, und offensichtlich gibt es keine PDK-ähnliche Benutzeroberfläche. Es gibt auch einige SimConnect-Funktionen (z. B. bei Wetter und KI), die entweder noch nicht angeschlossen sind oder Verhaltensänderungen oder Regressionen aufweisen. Asobo arbeitet intensiv an der Stabilisierung der SimConnect-API und wird sie dann ebenfalls erweitern.
HTML / JavaScript unterstützt das neue Messsystem. Es ist wichtig zu verstehen, dass dies im SDK noch nicht ordnungsgemäß dokumentiert ist und dass auf diese Weise auch alle Standardflugzeuge gebaut werden. Dies bedeutet nicht, dass C ++ ein Bürger zweiter Klasse ist. Vielmehr war C ++ / Wasm Tech eine spätere Ergänzung des MSFS Tech Stacks, die im Laufe der Zeit immer leistungsfähiger wird.
Die gesamte Benutzeroberfläche der Sim wird mit dem Coherent GT Toolkit geschrieben, einem lokalen Web / HTML-Framework, das auf einem Webkit basiert, das direkt auf die GPU passt. Es ist eine sehr coole Technologie für Benutzeroberflächen, da ich sicher bin, dass jeder in UI / UX viel glücklicher wäre, direkt in vertraute HTML / css / js-Konstrukte zu implementieren, als XAML-Designer verwenden zu müssen oder sogar jemanden zu benötigen, der das Design in das C ++ UI Toolkit übersetzt Code. Es ist noch cooler zu sehen, wie es auf die Messgeräte und die Avionik angewendet wird. Angesichts der Leistung der js-Engine (JavaScriptCore) ist es sehr beeindruckend zu sehen, was sie in Bezug auf Flugzeugsysteme und Avionikprogrammierung in Bezug auf eine im Wesentlichen eingebettete Web-App leisten konnten.
Sie können diese HTML-Anzeigen jetzt in Ihre panel.cfg aufnehmen, aber es ist nicht einfach, sie zu erstellen, da Ihnen das gesamte Framework fehlt, das Asobo für alle Standardtools entwickelt hat. Sie haben erwähnt, dass dies im Laufe der Zeit geöffnet wird, aber ich stelle mir vor, dass sie ab sofort die C ++ - Arbeit priorisieren. Ein Großteil des JavaScript / HTML / CSS-Codes wird mit der Sim geliefert, wenn Sie neugierig sind, sie zu überprüfen. Es gibt auch TypeScript, das sich auf JavaScript reduziert, wenn Sie daran interessiert sind. Leider wird der Coherent-Debugger nicht mit der Sim geliefert, aber Sie können die Effekte trotzdem sehen, indem Sie ein Paket bearbeiten und erstellen.
7. Grafikbibliotheken
Ohne windows.h haben Sie also kein GDI + (Graphics Device Interface) . Darüber hinaus haben viele Entwickler andere Techniken verwendet, indem sie die Messgerät-Header-Bitmap oder in P3D mithilfe von Render-to-Textur-Techniken überschrieben haben. Hier haben Sie keinen Zugriff auf Direct2D oder ein D3D-Gerät / einen D3D-Kontext. Daher gibt es standardmäßig keinen einfachen Anschluss für Grafiken, und ich kann mir vorstellen, dass hier viele Entwickler viel Zeit verbringen werden.
MSFS liefert eine Version der NanoVG-Vektorgrafikbibliothek (https://github.com/memononen/nanovg) aus, die jetzt direkt in der Wasm-Ebene enthalten ist. Es bietet eine API im Canvas-Stil. Wenn Sie neuen Code schreiben, ist dies ein guter Ausgangspunkt (siehe das GaugeDemo-Beispielflugzeug aus dem SDK).
Der GDI + -Wrapper ist jedoch in Arbeit, entweder basierend auf Nanovg oder einem noch nicht angekündigten System. Entwickler, die sich stark auf GDI + verlassen, können am besten warten, indem sie entweder mit nanovg oder dem HTML / CSS-System warten oder tun, was sie können.
Jeder mit einem benutzerdefinierten Rendering-System sollte sich die native Rendering-API "fsRender" in den SDK-Dokumenten ansehen. Dies ist das Backend für NanoVG, das verwendet wird, um den Motor direkt auf die GPU zu übertragen, und es ist eine sehr hohe Leistung. Wenn Sie mit D2D oder D3D vertraut sind, sollte dies ziemlich selbsterklärend sein - es ist wie eine Pipeline mit festen Funktionen und Scheitelpunkten nur in 2D.
Denken Sie daran, dass der Sinn all dessen darin besteht, eine wirklich plattformübergreifende Echtzeit-Vektorgrafikbibliothek zu erstellen, was keine Kleinigkeit ist.
8. Flughäfen und Landschaft
Ich mache selbst nicht viel in diesem Bereich, daher ist es besser, wenn andere, die besser informiert sind, darüber sprechen. Derzeit arbeiten viele Menschen an Flughäfen, und das SDK bietet eine gute Werkzeugunterstützung, obwohl die Dokumente noch erweitert werden.
Die Grundlagen der Flughafen-BGL-Dateien sind dieselben. Es gibt einige Änderungen, so dass es sich nicht um Drop-In-Ersetzungen handelt, aber die Struktur der Datensätze sollte bekannt sein.
Viele Bereiche von Flughäfen verwenden heute stark Vektordaten für Polys. Sie können den Dev-Modus verwenden, um alle Arten von Polys für den Flughafen zu zeichnen. Diese werden tatsächlich als CVX-artige Datensätze (Adaptive Delta Compressed) im bgl gespeichert. Interessanterweise wird dieses Format nur hier verwendet und nicht mehr für Geo-Vektordaten.
Schräge Landebahnen werden unterstützt, da die Flughafentexturen auf das darunter liegende Netz projiziert / drapiert werden. Da Sie Höhendaten noch nicht anpassen können, können Sie Steigungen und Flughafenhöhen nur mit lokalen "Terraforming" -Polys anpassen, die gewöhnungsbedürftig, aber sehr leistungsfähig sind.
Das gleiche bgl-Layersystem ist vorhanden (jetzt basierend auf Content.xml), und ich erwarte mehr Funktionen in der Szenerie-Bibliothek, da Addons immer häufiger eingesetzt werden.
9. Geländesystem/Terrain System
Dies ist normalerweise mein Schwerpunkt und garantiert wahrscheinlich einen eigenen Beitrag.
Das FSX-Geländesystem ist offiziell tot und es gibt jetzt mehr QMIDs oder 6 Wurzelzellen. Alles basiert jetzt auf einem Standard-Quadtree (mit Ausnahme von Dingen wie Flughafenobjekten, die in einem QMID-Raster platziert sind und in die dann transformiert wird roher Lat / Lon). Es ist alles Mercator-Projektion unter Verwendung des Kachelsystems Bing Maps (https://docs.microsoft.com/en-us/bingmaps…aps-tile-system). Dies bedeutet, dass sich die Basisverzeichnisse (CGL) mit 3 Nummern 0-4 (die 3 Quadtree-Ebenen darstellen) anstelle von 4 (mit den regionalen x / y-Unterteilungen) vom FSX unterscheiden.
Es gibt leider keine abwärtskompatible Möglichkeit, Geländedaten im FSX / P3D-Stil zu laden. Es muss im neuen Format neu erstellt werden, und Terrain-Addons werden von den SDK-Tools noch nicht unterstützt, obwohl sie bald verfügbar sein werden.
Alles basiert jetzt auf CGL-Dateien, die neu sind und alles ersetzen, was das Resample getan hat. Dies ist ein sehr einfaches Containerformat, das LZW-komprimiert ist und alle Kacheln für einen Bereich enthält und problemlos bearbeitet werden kann.
Leider liegen die enthaltenen Daten nach der Dekomprimierung in vielen verschiedenen Formaten vor und sind jetzt noch nicht entschlüsselbar. Auch jetzt kann dies noch nicht über das SDK erstellt werden, nur Luftbilder können und es weist einige Macken / Unterschiede zum FSX-System auf, die mit dem fortschreitenden Laden von Kacheln zusammenhängen.
bldn / bldo-Dateien - Wenn Sie Footprint-Daten erstellen, wird das Format weiter komprimiert und ist nicht bekannt
Dem-Dateien - Rohhöhen, unkomprimierte oder Windows-HD-Foto
lcg - Landklassendaten? .webp-Format
vec / vecn - Vektorstraßen usw.
vgm - Vegetationsmodelle?
Zu beachten ist auch, dass viele städtische Gebiete jetzt Photogrammetrie von Bing Maps enthalten. Dies sind im Wesentlichen 3D-Modelle der Stadt, und ich habe das Format ausgearbeitet, sie sind einfach zu rendern. Da sie ausschließlich in der Cloud gehostet werden, werden Sie sie wahrscheinlich nie offline sehen. Sie lassen sich auch nicht in die anderen Szenerie-Typen integrieren, es ist alles oder nichts und Sie können leicht erkennen, wo die Photogrammetrie endet und die erzeugte Welt beginnt. Sie können durch ein Poly in Addons ausgeschlossen werden. Trotzdem sehen sie beim Fliegen in der Innenstadt sehr beeindruckend aus.
10. Modelle
FSX-MDL-Dateien können weiterhin problemlos geladen werden, obwohl sie Legacy sind und nicht zum Speichern von Inhalten verwendet werden dürfen. Alles wurde durch .gltf ersetzt, und Asobo verwendet viele gltf-Erweiterungen, von denen sie jetzt mit dem SDK geliefert werden.
Es ist wichtig zu wissen, dass es einen "Backprozess" gibt, der auftritt, wenn Sie ein Paket erstellen, das die gltf-Dateien ändert und sie optimiert. Derzeit werden die .bin-Daten nicht geändert, dies könnte sich jedoch in Zukunft ändern und die Möglichkeit beeinträchtigen, fertige oder Rapid-Prototyping-Modelle aus anderen Tools zu erstellen. Natürlich können Sie jederzeit einfach das stk-Format gltf exportieren und diesen Schritt als Teil Ihrer Pipleline ausführen.
Ansonsten sind dies ziemlich normale GTF-Dateien, die in einem Text-Viewer leicht angezeigt werden können. Ich begrüße Asobo für die Wahl eines solchen offenen Formats und hoffe, dass diese Offenheit bei der Weiterentwicklung der Sim wahr bleibt.
11. Autogen
Als lobende Erwähnung werden wir über das neue Ersatzsystem für FSX-artiges Autogen sprechen. FSX-Autogen und Anmerkungen sind tot.
Sehen Sie sich das Partnerschaftsvideo von blackshark.ai aus der letzten Woche an und erhalten Sie einen Überblick darüber, was hier in MS2020 getan wird. Beachten Sie, dass der überwiegende Teil dieses Generierungsprozesses offline erfolgt. Sie verbrauchen nur die Daten.
Im Wesentlichen werden Luftbilder auf Gebäudegrundrisse und Gebäudehöhen analysiert. Diese Geometrieinformationen werden zur Laufzeit mit Landklassendaten kombiniert, um sehr realistisch aussehende autogenerierte Gebäude zu synthetisieren. Diese enthalten Details wie Fassaden, Dächer, Sonnenkollektoren usw. Die meisten dieser Daten werden vorverarbeitet und in CGL-Dateien mit der Sim ausgeliefert, sodass Sie offline fliegen können. Bäume werden auch generiert, um Artefakte der Photogrammetrie sowie überall dort abzudecken, wo ein Baum von den ML-Modellen erkannt wird. Es gibt auch Online-Updates der Vegetationsmasken, die von Azure heruntergeladen werden.
Wenn Sie von ESRI CityEngine gehört haben, ist das PGG blackshark.ai ein ähnliches Laufzeitgenerierungssystem wie das PRT von ESRI (ohne die AI-Komponente, vorausgesetzt, Sie beginnen mit Footprints von OSM oder ähnlichem).
Leider werden PGG-Mods vom SDK noch nicht unterstützt, obwohl es so aussieht, als ob sie in Zukunft sein werden. Dies ist ein unglaublich leistungsfähiges System und ich kann es kaum erwarten zu sehen, was wir damit machen können.
12. Weitere Informationen zu Modellierung und Animationen
Um dies von früher zu verdeutlichen, besteht die Absicht eines offenen Standards nicht darin, die Netze unverändert zu nehmen und in einem anderen Programm abzulegen. Die Idee ist, dass sie 1) wirklich einfach zu überprüfen sind, 2) relativ einfach außerhalb der offiziellen Tools zu verfassen sind und 3) sich mit der Community weiterentwickeln können, die den Standard im Laufe der Zeit vorantreibt. MSFS-Netze sind (abhängig von Ihrer Interpretation einiger Teile des Standards) entweder vollständig gltf- oder fast vollständig gltf-konform. Obwohl es kein kostenloses Mittagessen gibt, sind sie relativ einfach zu bearbeiten. Es gibt hier einen anderen Thread von Vitus, der einen Blender-Exporteur für MSFS zum Laufen gebracht hat, was wirklich cool ist. Ich denke, Gibbage hat auch einen Substanzmaler angeschlossen, was unglaublich ist. In Bezug auf die Modellierung habe ich es vorher nicht erwähnt, aber wie man offiziell erwarten würde, ist alles durch 3ds Max (2016-2020 werden unterstützt). Der Exporter von max ist Open Source (https://github.com/AsoboStudio/FlightSim-glTF-exporter). Sie können auch alle mit dem SDK for Max gelieferten Skripte untersuchen, einschließlich des PBR-Vorschau-Shaders. Das Materialsystem ist vollständig PBR und unterscheidet sich von dem, was Sie gewohnt sind. Es gibt jedoch noch Konzepte wie modeldef.xml-Animationen, und es scheint ein relativ schmerzloser Übergang für diejenigen zu sein, die PBR für V5 durchgeführt haben, um dieses neue Toolset zu erlernen.
13. Sound
Das Legacy-Soundformat mit Wellen / .cfgs wird weiterhin unterstützt, obwohl das neue System, das auf WWISE basiert, viel flexibler ist.
Das WWISE-System ist sehr erweiterbar und robust, und Sie können Standardtools und XML verwenden, um diese zu bearbeiten. Die Dokumente im SDK sind sehr gut und es gibt auch Tutorials im Hilfemenü des Dev-Modus.
Es wurde angegeben, dass unter Wasm irgendwann eine Sound-API für Addons verfügbar sein wird, da dies in vielen Messgeräten die Kernfunktionalität ist.
14. Aerodynamik / Flug-Physik
Das FSX-Physikmodell wird weiterhin unterstützt und funktioniert größtenteils gleich. Sie können Legacy-.air- und .cfg-Dateien einfügen, die geladen werden. In den Einstellungen befindet sich sogar eine Aerodynamik im "Legacy-Modus". Die Fähigkeit, die Abwärtskompatibilität beizubehalten, war eines der Hauptentwurfskriterien für diesen Titel. Sie sehen hier wahrscheinlich ein allgemeines Thema, dass es in vielen Bereichen Abwärtskompatibilität gibt, obwohl es in Zukunft neue Methoden gibt.
Die FSX-Aerodynamik wird im SDK einschließlich aller Ableitungen detailliert dokumentiert. Wenn Sie einen starken Hintergrund in Analysis / Physik haben, ist dies eine interessante Lektüre. Das neue Aerodynamikmodell hat einen sehr umfassenden Überblick, wird jedoch nicht ausführlich erläutert, obwohl es ein Tutorial gibt, das die Konstruktion eines neuen Flugzeugs ausführlicher beschreibt.
Ich werde versuchen, es zusammenzufassen, aber ich weiß, dass ich trotz meines technischen Hintergrunds keineswegs ein FDE-Guru bin. Das FSX-Modell behandelt Ihr Flugzeug im Wesentlichen wie eine Box mit Flügeln und Stabilisatoren, die auch Boxen sind. Die Kräfte sind größtenteils tischgetrieben, werden nur bei diesen großen Kästen summiert und sie sind geometrisch bei einem relativ niedrigen Delta T mit minimaler Wechselwirkung mit der Umgebung integriert. Obwohl sie mathematisch korrekt sind, vermitteln sie das Gefühl, dass sich das Flugzeug auf "Schienen" befindet. oder vielleicht zu stabil.
Das neue Modell ersetzt den Integrator und läuft mit einer viel höheren Geschwindigkeit. Es teilt die Aerodynamik in Tausende kleinerer Flächen über die Flugzeuggeometrie auf (vom Aero-Modell, nicht vom visuellen Modell wie der x-Ebene) und summiert die Kräfte einzeln. Es ist nicht wirklich eine Klingenelementtheorie, sondern nur eine Dynamik des starren Körpers in großem Maßstab. Da das Umgebungskraftmodell auch in 3D vorliegt, ermöglicht dies viel genauere Berechnungen und Reaktionen zur Steuerung von Eingaben und Winden. Bei diesem Ansatz wird behauptet, dass Tabellen für viele Bereiche größtenteils nicht benötigt werden oder Legacy. Was ich nicht verstehe, ist die Behauptung, dass alle über die Körperteile verteilten Kräfte immer noch die gleichen sind wie das FSX-Modell - sie tun es eindeutig nicht. Vielleicht kann jemand näher darauf eingehen.
Wenn Sie fliegen, müssen Sie der Richter der Aero-Modelle sein. Ich denke nicht, dass eines von Natur aus besser ist als das andere, sie sind unterschiedlich. Ich denke, das Legacy-Modell ist zu diesem Zeitpunkt stabiler, aber das neue Modell ist viel weiter fortgeschritten und hat viel mehr Potenzial für die Zukunft. Ich habe gesehen, wie sie das neue Modell im Verlauf des Alpha positiv durchlaufen haben und erwartet, dass es so weitergeht, und wie immer bei der Aerodynamik ist das Modell nur so gut wie die Daten, die Sie darauf werfen.
Anekdotisch, abgesehen von einigen offensichtlich falschen P-Faktor- und Bodeninterferenzverhalten, glaube ich, dass das neue Modell im 172 sehr gut zu meiner Erfahrung passt. Fliegen in der "realen" Welt unglaublich genau und viel genauer als das Legacy-Modell. Auf der anderen Seite habe ich Zeit damit verbracht, Level A-Sims für Verkehrsflugzeuge zu bearbeiten und in ihnen zu fliegen, und ich glaube, diese flogen viel mehr wie das Legacy-Modell. Natürlich sind diese massiv tischgetrieben und Flugzeuge sind im Allgemeinen unglaublich stabil, daher ist dies sinnvoll.
15. Lebende Welt
Das Living World-System (KI für Schiffsverkehr, Autobahnen und Flughafenleben) ist weitgehend dasselbe wie im FSX, mit einigen Ergänzungen des XML für die neuen Flughafenfunktionen. Diese sind im SDK dokumentiert.
Es wurde beobachtet, dass es sich auf Dinge wie den KI-Bootsverkehr erstreckt - benutzerdefinierte Daten, die von Lamont Clarks KI-Bootsverkehrs-Compiler erstellt wurden, scheinen sofort zu funktionieren.
Dies gilt auch für andere Legacy-Bereiche - zum Beispiel scheint das AI-Flugverkehrsformat (die veralteten BGLC-Bgls) immer noch weitgehend gleich zu sein!
16. Beleuchtungsmodell / Rendering / Welt
Die fortschrittliche Grafik-Engine von Asobo ist multithreaded, instanziiert und verzögert, sodass dies für die meisten Leute, die von FSX / P3D kommen, eine strukturelle Änderung darstellt. Die Ergebnisse sind offensichtlich optisch sehr beeindruckend. Es funktioniert effizient mit der GPU (auf einem modernen Mid-High-End-System bin ich fast immer an die GPU gebunden), sodass sich das Leistungsprofil von dem unterscheidet, an das Sie gewöhnt sind, wobei der Hauptthread weniger betont wird. Natürlich müssen die Addon-Entwickler wie immer darauf achten, dass die Ressourcen des Hauptthreads nicht ausgehungert werden, da viele der Funktionen, an die Sie gewöhnt sind, dort versandt werden.
Wie Sie Netze bauen, wird sich jetzt wahrscheinlich weiterentwickeln. Es besteht keine (starke Notwendigkeit für) Drawcall-Stapelverarbeitung, sodass Sie Bewegungen in Richtung größerer Texturblätter und weniger Materialien sehen, wo dies sinnvoll ist. Mit den heutigen GPU-Architekturen sind Dreiecke ziemlich billig und VRAM ist eher eine Prämie. Seien Sie effizient bei der Gestaltung Ihrer Karten und ziehen Sie in Betracht, Details direkt zu Netzen hinzuzufügen.
Auf der Rendering-Seite gibt es zahlreiche Bereiche, in denen Änderungen von Drittanbietern in P3D / FSX vorgenommen wurden, einschließlich Basistexturen, Wetter- und Himmelsvisualisierungen und sogar Shader-Änderungen. All dies wird aus vielen Gründen in MSFS sehr schwer zu modifizieren sein. Zum einen wurde nichts anderes als das Rendern von Texturtechniken in P3D offiziell unterstützt. Asobo hat deutlich gemacht, dass der Kern des Spiels darin besteht, konsistent zu bleiben und nicht in Unordnung zu geraten, wobei die Sicherheit ein Problem darstellt. Die Shader werden beispielsweise als Uber-Shader bereits in einem gepackten / archivierten Format kompiliert. Texturen werden in mehreren Paketen geliefert, einschließlich der komprimierten .dpc-komprimierten Container sowie verschiedener anderer vom MSFS-Kern verwalteter Pakete, wie z. B. der Bongfish Texturesynth und der fs-Basismaterialbibliotheken.
Mit einem verzögerten Beleuchtungsmodell können Dinge wie dynamische Beleuchtung und Lichtschatten viel billiger berechnet werden als vorwärts. Sie sehen dies in den Cockpits, die mit dynamischer Nachtbeleuchtung und Schatten sowie vollem PBR aus der Box kommen und fantastisch aussehen. Dies sind Bereiche, in denen viele Techniken und Problemumgehungen von Entwicklern von Drittanbietern clever, aber schwer zu warten waren Wege. Bereiche wie zum Beispiel der Himmel werden meistens prozedural mit vorberechneten atmosphärischen Streuungen und volumetrischen Wolken für eine wirklich globale Beleuchtung erzeugt (siehe das Papier von Eric Bruneton und Fabrice Neyret von INRIA für die Grundlagen), so dass Sie nur wenig dazu in der Lage wären dort ändern.
In Bezug auf Texturen wird möglicherweise eine langfristige Technik entwickelt, um diese für Neugierige zu überschreiben, ohne die Basis-Sim-Installation zu zerstören.
17. Effekte
Dieser hat einige Leute unvorbereitet erwischt, daher verdient er eine kurze Erwähnung. Das FSX-Partikelsystem ist vorhanden (und in den SDK-Dokumenten enthalten), aber ein Großteil davon ist derzeit nicht angeschlossen. Wenn Sie nicht sehen, dass Ihre Effekte funktionieren, ist dies der Grund.
Der Zustand hat sich im Laufe der Entwicklung geändert und es scheint, dass es durch ein anderes Effektsystem ersetzt wird. Denken Sie daran, dass das FSX-System bereits in Zeiten von GPU-Pipelines mit fester Funktion entwickelt wurde. Erwarten Sie daher, dass ein neueres System wesentlich leistungsfähiger ist und der modernen Motorentechnologie entspricht.