Physik und Planetensystem

  • Ich habe angefangen das newtonsche Gravitationsgesetz in Form eines virtuellen Planetensystems zu simulieren. Es wirken also Kräfte auf die Objekte, genau wie es die Formel von Newton beschreibt.


    [Blockierte Grafik: https://upload.wikimedia.org/w…fUniversalGravitation.svg]
    https://de.wikipedia.org/wiki/Newtonsches_Gravitationsgesetz



    Noch ist die Formel nicht richtig eingebaut, ich war bisher viel mehr damit beschäftigt die Programmierung mit Blueprints zu verstehen. Auf den Bildern sieht man daher noch das Resultat einer nicht ganz korrekten Formel. Deswegen kann ich trotz Abstimmung der Anfangsbeschleunigung noch keine stabile Orbit hinbekommen. Noch stürzen meine "Planeten" nach einigen Umrundungen ab oder anders gesagt, mein Universum würde so ziemlich flott in sich kollabieren :D


    Optisch sieht man auf den Bildern momentan nur einfache Sphere Objekte von der Top Ansicht, ich war bisher nur mit der Programmierung beschäftigt. Nachdem ich die Formel richtig eingebaut und stabile Orbits habe, werde ich das ganze optisch gestalten. Das ist jedenfalls die bisherige Vorstellung, wie weit ich komme wird sich zeigen. Es ist ein Lernprojekt.


    Auf den letzten drei Bildern sieht man mehrere Sphere Objekte die ohne Anfangsbeschleunigung durch die Schwerkraft sich gegenseitig anziehen. Klingt vielleicht unspektakulär aber ich habe mich voll gefreut als es plötzlich funktionierte :D

  • Da ich mit den echten pyhsikalischen Werten arbeiten möchte, komme ich mit Blueprints allein nich mehr weiter. Die Blueprint Datentypen beinhalten nicht alle C++ Datentypen.
    So gibt es für Zahlen mit Nachkommastellen nur den Datentyp Float und nicht Double.
    Die Gravitationskonstante ist eine so kleine Zahl mit vielen Nachkommastellen, die passt in ein Float nicht rein.


    Und ich wollte mit Blueprints sowieso erstmal ein Prototype erstellen und aus Performance Gründen es dann in C++ machen.
    Und an der Hürde hänge ich gerade herum :D
    Nun erweitere ich meine C++ Kenntnisse und versuche mit meinen dürftigen Englisch Kenntnissen die UE4 C++ Dokumentation zu verstehen ^^


    Siehe: Deutsche Tutorials?

  • Freut mich das ihr Interesse zeigt. Leider kam ich seit Januar nicht mehr dazu weiter daran zu arbeiten, es blieb bei den ersten Versuchen. Es scheitert auch etwas an meinen Ansprüchen, ich will am liebsten das Sonnensystem im 1:1 Maßstab, aber das ist nicht mal in Kerbal Space Program der Fall.
    Man muss technisch tricksen und Vereinfachungen nutzen, um eine riesige Spielwelt auf einem Heimrechner realisieren zu können.


    Soweit ich weiß ist es in UE4 so das mit zunehmender Entfernung vom Mittelpunkt der Welt die Physik Engine nicht mehr richtig arbeitet, probiert habe ich es nicht. Es soll möglich sein den Mittelpunkt der Welt auf die aktuelle Position des Spielers zu verschieben, womit sich das Problem vermutlich lösen lässt.

  • Selbst für eine Simulation so großer Objekte eignet sich die Gravitationsgleichung nicht wirklich. Das ist eher was für Objekte, die ... nunja, nach unten fallen. In KSP werden die Positionen aller Körper mit einer Ellipse um den Gravitationspunkt simuliert. Im Weltraum sind die Entfernungen so riesig, dass es keinen Sinn macht alle Objekte die ganze Zeit zu berücksichtigen. Im nahen Erdorbit spielt der Mond so gut wie keine Rolle. Du muss also zur Beschreibung eines Objektes nur paar Parameter kennen. Zu welchem Objekt wird es aktuell hin gezogen, Masse des Objektes, aktuelle Entfernung, aktueller Richtungsvektor, aktuelle Geschwindigkeit, eigene Masse. Damit kannst du eine Ellipse um das zu umrundende Objekt aufspannen. Solange keine zusätzlichen Kräfte wirken bleibt die Umrundung gleich dieser Ellipse. Die Geschwindigkeit schwankt zwischen der Periapsis und Apoapsis zwischen Maximal- und Minimalwert. Entsprechend der aktuellen Position auf der Ellipse sollte man das ausrechnen können, da wird es sehr mathematisch. Mit diesem Modell hast du den Luxus, dass du kaum Rechenpower brauchst, um die Simulation grundsätzlich ablaufen zu lassen. Sobald sich jetzt aber 2 Planeten sehr nahe kommen wirken wieder Kräfte. Das hat KSP nicht drin, da wirkt nur ersteres. Man muss also noch Prüfen, ob schwere Körper in der Nähe sind und so weiter. Dort wird es komplizierter.
    Ansonsten wird das ein sehr interessantes Projekt.