Wenn Sie in Cattos Notizen nachlesen, dass Sie den Link zu der Stelle gepostet haben, an der er über die Verwendung eines iterativen Lösers spricht, der auf Impulsen basiert, ist dies in der Praxis wahrscheinlich nicht viel anders als das, was Sie möglicherweise tun, wie Sie sagen: "Einfach anwenden." Impulse zur Lösung von Kollisionen ". Obwohl der Jacobian wie eine komplizierte mathematische Idee klingt, ist es in Wirklichkeit nur eine Reihe von Vektoren, mit denen Sie 1) messen können, ob die Bedingung erfüllt ist, und 2) Ihnen die effizientesten Anweisungen zum Anwenden von Impulsen geben, um die Bedingung zu erfüllen . Wenn Sie bereits Impulse anwenden, um eine Einschränkung zu erfüllen, tun Sie wahrscheinlich etwas Ähnliches oder sogar Äquivalentes, ohne sich dessen bewusst zu sein.
Wenn es um dreidimensionale starre Körper und mehrdimensionale Einschränkungen wie Scharniere geht, bietet die jakobische Mathematik einen Rahmen, um die Einschränkung der linearen und Winkelgeschwindigkeiten auszudrücken und sowohl lineare als auch Winkelimpulse abzuleiten, um die Einschränkungen zu lösen. Es bietet auch eine Möglichkeit, alle Einschränkungen zusammen zu werfen (z. B. für eine Sammlung von Körpern mit vielen Einschränkungen) und sie gleichzeitig zu lösen. In der Praxis und insbesondere in Spielen tendieren wir jedoch dazu, iterative Löser zu verwenden, die mehr oder weniger eine ausgefallene Methode sind, um hier und dort einen kleinen Impuls zu geben, und so weiter, bis alles genau richtig ist.
Wenn Sie sagen, dass Sie "einfache Impulse anwenden, um Kollisionen aufzulösen", bedeutet dies möglicherweise, dass Sie die Position einschränken, aber nicht die Geschwindigkeiten einschränken? Ein solcher Ansatz kann in einigen Kontexten funktionieren, impliziert jedoch, dass Sie nur dann Impulse anwenden, wenn die Objekte eindringen? Wie wäre es, wenn ein Objekt unter dem Einfluss der Schwerkraft auf einer Oberfläche ruht? Ein Beschränkungslöser, der mit einer Geschwindigkeits- oder Beschleunigungsbeschränkung arbeitet, zeigt Ihnen die geeigneten und korrekten Kräfte an den Kontaktpunkten an, die es Ihnen ermöglichen, die richtige Reibung und dergleichen auszuführen, wohingegen eine Beschränkung nur auf Positionsebene zu Schwingungskräften führt, die schwingen und viel stärker sind instabil bei Änderungen der Bildrate. Z.B, Wenn Sie eine Positionsbeschränkung haben, bei der der Impuls proportional zur Penetrationsmenge ist, wird das Gleichgewicht nur an einer bestimmten Stelle erreicht, an der sich die Schwerkraft und der Beschränkungsimpuls gegenseitig aufheben. Das mag ein weiterer kritischer Unterschied zwischen Ihrem Ansatz und einem auf Einschränkungen basierenden Ansatz sein, aber es ist schwer zu sagen, ohne Ihren Algorithmus und Ihre Problemdomäne zu kennen (2D-Partikel in einer Meteorsimulation im Weltraum? 3D-Simulation eines menschlichen Körpers in einer Autounfallsimulation ?)
Ich bin kein Experte für dieses Thema, aber ich habe die Präsentation gelesen und das Papier übersprungen.
Wie Rittich sagte, können Sie die Newtonschen Impulsberechnungen auf ein System von Pendeln anwenden, die durch Einschränkungen miteinander gepaart sind. In diesem Fall müssten Sie die Kraft, die auf das innere Pendel wirkt, dann das äußere Pendel und die Kräfte zwischen ihnen separat berechnen. Dieses Problem wird nur umso größer, je mehr Körper miteinander interagieren können, beispielsweise ein n-Element-Pendel.
Mit dem auf Einschränkungen basierenden Löser haben Sie Informationen für einen Körper erhalten, der aus mehreren Einschränkungen besteht, die über numerische Berechnungen gelöst werden können. Das heißt, anstatt die genaue Position jedes Mal zu berechnen, wenn eine Kraft auf die Kontraine wirkt, können Sie iterative Berechnungen verwenden, um die Ergebnisse zu approximieren.
Die Annäherung klingt problematisch, ist jedoch in den meisten Fällen nach einigen iterativen Schritten nicht erkennbar.
quelle