Hallo, ich habe kürzlich die SFML-Grafikbibliothek gelernt und möchte ein 2D-Physiksystem mit nicht starrem Körper verwenden oder dafür verwenden. Ich habe drei Fragen:
Die Definition des starren Körpers in Box2d lautet
Ein Materiestück, das so stark ist, dass der Abstand zwischen zwei beliebigen Materieteilen auf dem Stück völlig konstant ist.
Und genau das möchte ich nicht, da ich elastische, verformbare, zerbrechliche und wieder verbundene Körper herstellen möchte. 1. Gibt es einfache 2D-Physik-Engines, aber mit solchen Eigenschaften? vorzugsweise kostenlos oder OpenSource?
2. Wenn nicht, könnte ich box2d verwenden und daran arbeiten, um es zu erstellen, selbst wenn es auf starren Körpern basiert?
3. Wenn es eine einfache Physik-Engine wie diese gibt, sollte ich dann den Prozess durchlaufen, trotzdem eine neue zu erstellen, nur um Erfahrung zu sammeln und die mathematischen Mathematikkenntnisse zu verbessern? Ich denke, es würde helfen, wenn ich jemals den Code einer vorhandenen Engine ändern oder ein Spiel mit wirklich einzigartiger Physik erstellen wollte.
Vielen Dank!
Antworten:
Sie können starre Körpersysteme verwenden, um eine weiche Körper- und Fluiddynamik zu erzeugen. Physischer Grund dahinter? Nun, Atome sind im Wesentlichen kleine starre Körper. Dies ist natürlich nicht ganz richtig, aber der Einfachheit halber können Sie sie als solche betrachten. Und weiche Körper bestehen offensichtlich aus Atomen.
Wie schafft man also "weiche Körper" mit einer Starrkörper-Engine wie Box2D?
Die wesentliche Technik besteht darin, Punkte in Ihrem Körper mithilfe von Gelenken miteinander zu verbinden. Wenn Sie beispielsweise die Enden einer Liste von Linien mithilfe von Abstandsfugen miteinander verbinden (dh der Abstand zwischen zwei Fugen muss konstant sein), verhält es sich ungefähr wie ein Stück Stoff.
Aber das ist nur eine grobe Beschreibung. Ewjordan, einer der Entwickler des Java-Ports von Box2D, hat viel "elementare Feldarbeit" mit Box2D geleistet. Hier ist ein guter Ausgangspunkt: http://www.box2d.org/forum/viewtopic.php?f=8&t=1978
quelle
Der Begriff, den Sie suchen, ist Weichkörperphysik.
Wikipedia hat eine schöne Liste. Sie sind alle 3D AFAICS, sollten aber gut sein.
Schauen Sie sich auch diese SO-Frage an.
Ein großartiges Buch (es ist ein starrer Körper, aber alle Mathematik und Physik sind vorhanden; es ist auch 3D, aber es ist trivial, es auf 2D zu übertragen) ist Game Physics Engine Development . Es implementiert ein partikelbasiertes System, bevor es auf starre Körper übergeht und kollidiert.
quelle
Eine einfache Möglichkeit, weiche Körper zu simulieren, besteht darin, kleine starre Körper mit elastischen Gelenken zu verbinden. Dann ist es schwierig, die Parameter Ihres Modells zu optimieren und die Textur dem zugrunde liegenden Modell zuzuordnen.
Der folgende Blog-Beitrag enthält eine Implementierung eines deformierbaren Balls mit cocos2d-Engine: http://2sa-studio.blogspot.com/2014/05/soft-bodies-with-cocos2d-v3.html
quelle