Dynamische Simulation - Dynamical simulation
Dynamische Simulation ist in der Computerphysik die Simulation von Systemen von Objekten, die sich frei bewegen können, üblicherweise in drei Dimensionen gemäß den Newtonschen Gesetzen der Dynamik oder deren Annäherungen. Die dynamische Simulation wird in Computeranimationen verwendet , um Animatoren bei der Erzeugung realistischer Bewegungen zu unterstützen, im Industriedesign (zum Beispiel zur Simulation von Abstürzen als frühen Schritt bei Crashtests ) und in Videospielen . Die Körperbewegung wird unter Verwendung von Zeitintegrationsmethoden berechnet .
Physik-Motoren
In der Informatik wird ein Programm namens Physics Engine verwendet, um das Verhalten von Objekten im Raum zu modellieren. Diese Motoren ermöglichen die Simulation der Art und Weise, wie Körper vieler Arten von einer Vielzahl physikalischer Reize beeinflusst werden. Sie werden auch verwendet, um dynamische Simulationen zu erstellen , ohne etwas über Physik wissen zu müssen. Physik-Engines werden in der gesamten Videospiel- und Filmindustrie verwendet, aber nicht alle Physik-Engines sind gleich. Sie sind in der Regel in Echtzeit und hohe Präzision unterteilt, dies sind jedoch nicht die einzigen Optionen. Die meisten Echtzeit-Physik-Engines sind ungenau und liefern nur die geringste Annäherung an die reale Welt, während die meisten hochpräzisen Engines für den Einsatz in alltäglichen Anwendungen viel zu langsam sind. Um zu verstehen, wie diese Physik-Engines aufgebaut sind, ist ein grundlegendes Verständnis der Physik erforderlich. Physik-Engines basieren auf dem tatsächlichen Verhalten der Welt, wie es von der klassischen Mechanik beschrieben wird . Motoren berücksichtigen normalerweise nicht die moderne Mechanik (siehe Relativitätstheorie und Quantenmechanik ), da sich die meisten Visualisierungen mit großen Körpern befassen, die sich relativ langsam bewegen, aber die kompliziertesten Motoren führen Berechnungen sowohl für die moderne Mechanik als auch für die klassische Mechanik durch. Die in dynamischen Simulationen verwendeten Modelle bestimmen, wie genau diese Simulationen sind.
Partikelmodell
Das erste Modell, das in Physik-Engines verwendet werden kann, regelt die Bewegung von infinitesimalen Objekten mit endlicher Masse, die als "Teilchen" bezeichnet werden. Diese Gleichung, Newtons zweites Gesetz (siehe Newtons Gesetze ) oder die Definition von Kraft genannt, ist das grundlegende Verhalten, das alle Bewegungen regelt:
Diese Gleichung ermöglicht es uns, das Verhalten von Partikeln vollständig zu modellieren. Dies reicht jedoch für die meisten Simulationen nicht aus, da die Rotationsbewegung starrer Körper nicht berücksichtigt wird . Dies ist das einfachste Modell, das in einer Physik-Engine verwendet werden kann und in frühen Videospielen ausgiebig verwendet wurde.
Trägheitsmodell
Körper in der realen Welt verformen sich, wenn Kräfte auf sie ausgeübt werden, daher nennen wir sie „weich“, aber oft ist die Verformung im Vergleich zur Bewegung vernachlässigbar klein und die Modellierung sehr kompliziert, sodass die meisten Physik-Motoren die Verformung ignorieren. Ein Körper, von dem angenommen wird, dass er nicht verformbar ist, wird als starrer Körper bezeichnet . Die starre Körperdynamik befasst sich mit der Bewegung von Objekten, die Form, Größe oder Masse nicht ändern können, aber Ausrichtung und Position ändern können.
Um Rotationsenergie und Impuls zu berücksichtigen, müssen wir beschreiben, wie mit einem Moment eine Kraft auf das Objekt ausgeübt wird , und die Massenverteilung des Objekts mithilfe eines Trägheitstensors berücksichtigen . Wir beschreiben diese komplexen Wechselwirkungen mit einer Gleichung, die der obigen Definition der Kraft etwas ähnlich ist:
wo ist der zentrale Trägheitstensor , ist der Winkelgeschwindigkeitsvektor und ist das Moment der j- ten äußeren Kraft um das Massenzentrum .
Der Trägheitstensor beschreibt die Position jedes Massenteilchens in einem bestimmten Objekt in Bezug auf den Massenschwerpunkt des Objekts. Auf diese Weise können wir bestimmen, wie sich ein Objekt in Abhängigkeit von den auf es einwirkenden Kräften dreht. Diese Winkelbewegung wird durch den Winkelgeschwindigkeitsvektor quantifiziert.
Solange wir unter den relativistischen Geschwindigkeiten bleiben (siehe Relativistische Dynamik ), simuliert dieses Modell alle relevanten Verhaltensweisen genau. Bei dieser Methode muss die Physik-Engine zu jedem Zeitpunkt, den wir rendern möchten , sechs gewöhnliche Differentialgleichungen lösen. Dies ist eine einfache Aufgabe für moderne Computer.
Euler-Modell
Das Trägheitsmodell ist viel komplexer als wir normalerweise benötigen, aber es ist am einfachsten zu verwenden. In diesem Modell müssen wir unsere Kräfte nicht ändern oder unser System einschränken. Wenn wir jedoch einige intelligente Änderungen an unserem System vornehmen, wird die Simulation viel einfacher und unsere Berechnungszeit verkürzt sich. Die erste Einschränkung besteht darin, jedes Drehmoment in Bezug auf die Hauptachsen anzugeben. Dies erschwert die Programmierung jedes Drehmoments erheblich, vereinfacht jedoch unsere Gleichungen erheblich. Wenn wir diese Einschränkung anwenden, diagonalisieren wir den Trägheitsmomenttensor, wodurch unsere drei Gleichungen zu einem speziellen Satz von Gleichungen vereinfacht werden, die Eulers Gleichungen genannt werden . Diese Gleichungen beschreiben alle Drehimpulse in Bezug auf die Hauptachsen:
- Die N Terme sind angewendete Drehmomente um die Hauptachsen
- Die I- Terme sind die Hauptträgheitsmomente
- Die Begriffe sind Winkelgeschwindigkeiten um die Hauptachsen
Der Nachteil dieses Modells besteht darin, dass sich die gesamte Berechnung am Frontend befindet und daher immer noch langsamer ist, als wir es gerne hätten. Der wahre Nutzen ist nicht ersichtlich, da er immer noch auf einem System nichtlinearer Differentialgleichungen beruht. Um dieses Problem zu lösen, müssen wir eine Methode finden, mit der der zweite Term aus der Gleichung entfernt werden kann. Dadurch können wir uns viel einfacher integrieren. Der einfachste Weg, dies zu tun, besteht darin, ein gewisses Maß an Symmetrie anzunehmen.
Symmetrisches / Drehmomentmodell
Die beiden Arten von symmetrischen Objekten, die Eulers Gleichungen vereinfachen , sind "symmetrische Spitzen" und "symmetrische Kugeln". Der erste nimmt einen Symmetriegrad an, wodurch zwei der I-Terme gleich sind. Diese Objekte, wie Zylinder und Oberseiten, können mit einer sehr einfachen Gleichung und zwei etwas einfacheren Gleichungen ausgedrückt werden. Das tut uns nicht viel, denn mit einer weiteren Symmetrie können wir einen großen Geschwindigkeitssprung erzielen, ohne dass sich das Aussehen ändert. Die symmetrische Kugel macht alle I- Terme gleich (das Trägheitsmoment skalar), was alle diese Gleichungen einfach macht:
- Die N Terme sind angewendete Drehmomente um die Hauptachsen
- Die Begriffe sind Winkelgeschwindigkeiten um die Hauptachsen
- Der I- Term ist das skalare Trägheitsmoment :
- wo
- V ist der Volumenbereich des Objekts,
- r ist der Abstand von der Drehachse,
- m ist Masse,
- v ist Volumen,
- ρ ist die punktweise Dichtefunktion des Objekts,
- x , y , z sind die kartesischen Koordinaten.
Diese Gleichungen ermöglichen es uns, das Verhalten eines Objekts zu simulieren, das sich auf eine Weise drehen kann, die der Methode sehr nahe kommt, eine Bewegung ohne Drehung zu simulieren. Dies ist ein einfaches Modell, das jedoch genau genug ist, um in dynamischen Echtzeitsimulationen eine realistische Ausgabe zu erzielen . Außerdem kann sich eine Physik-Engine auf die sich ändernden Kräfte und Drehmomente konzentrieren, anstatt die Trägheit zu variieren.