Ich versuche mich gerade daran eine 3D Physik Engine zu schreiben, natürlich Quelloffen und wer Lust hat sich meinen Fortschritt an zu sehen, der kann dass hier tun.
Meine "Todoliste" für dieses Vorhaben sieht aktuell so aus:
1. Convexe Collider erzeugen
2. Mittels "kräften" und Zeit die Collider bewegen
3. Mittels SAT erkennen ob Collider sich berühren
4. Berührpunkte berechnen
5. Objecte wieder "trennen"
6. Kräfte übertragen
7. Zurück zu 2.
Dank Youtube, Wikipedia und ChatGTP habe ich 1., 2. 3. 5. und 7 auch schon halbwegs umsetzen können.
Aktuell Hänge ich daran, wie ich die Berührpunkte für die Kraftübertragung berechnen kann.
Dazu habe ich folgende Informationen:
1. die Facelisten (Dreiecke und Normalen) beider Convexer Hüllen
2. die Normale und "eintauchtiefe" über die man die beiden Hüllen wieder trennen kann.
3. Die Schwerpunkte beider Convexer Hüllen
Angeblich bekommt man den Berührpunkt (es reicht wohl einer, obwohl das 1 bis 4 sein können) in dem man einfach die Punktwolke beider Convexen Hüllen mit der Normalen Multipliziert und dann den Punkt mit dem "kleinsten" abstand nimmt.
Das habe ich versucht und es kommt murx raus, laut google liegt das daran das eben jedes Beschriebene Verfahren bei Box-Box Kollisionen genau nicht funktioniert und ich würde das aber gerne Unterstützen ..
Hat jemand zufällig Zugriff auf Informationen die mir hier weiter helfen ? ggf. eigene Erfahren die man tauschen kann ? Gibts nen Trick das aus den SAT Info's zu bekommen ? Habe ich was übersehen ?
Ich bin für alle Ideen Offen und freue mich über Feedback
