Wenn Sie eine Physik-Engine in einem Spiel verwenden (z. B. Bullet), müssen Sie normalerweise für jedes Objekt einen Kollisionsspielraum definieren. Ich bin ein Anfänger in der Spieleentwicklung und verstehe den Zweck einer Kollisionsspanne nicht.
Mein grundlegendes Verständnis ist, dass wenn Sie zwei Objekte mit jeweils einem Kollisionsrand von 0,01 haben würden, eine Kollision erkannt würde, wenn sich die beiden Kollisionsränder berühren, so dass der Abstand zwischen den beiden Objekten tatsächlich 0,02 beträgt.
Aber warum nicht einfach den Kollisionsspielraum auf 0 setzen und eine Kollision erkennen lassen, wenn die tatsächlichen Oberflächen der beiden Objekte kollidieren? So funktioniert Physik in der Realität.
Eine Vermutung ist die folgende. Wenn ein Würfel einen Rand von 0,01 hat, wird eine Kollision erkannt, wenn ein Teil eines anderen Objekts zwischen 0 und 0,01 von der Objektoberfläche entfernt ist. Dies gibt dem Simulationsraum Raum für Fehler, so dass, wenn es den Punkt "verfehlt", an dem das Objekt den Kollisionsrand des Würfels passiert (weil der Simulationsschritt lang ist), es noch Zeit hat, eine Kollision zu erkennen, wenn sich das Objekt dann nähert die Oberfläche des Würfels innerhalb des Randes von 0,01. Andernfalls, wenn die Ränder Null sind und eine Kollision von der Simulation übersehen wird, kann es vorkommen, dass zwei feste Körper denselben Raum einnehmen, was zu Problemen führen kann.
Ist diese Vermutung richtig? Oder gibt es einen anderen Grund?
Vielen Dank!