Skip to main content

Timeline for Resolving a collision with forces

Current License: CC BY-SA 3.0

21 events
when toggle format what by license comment
Sep 17, 2013 at 14:39 vote accept Vittorio Romeo
S Feb 10, 2013 at 22:51 history bounty ended Vittorio Romeo
S Feb 10, 2013 at 22:51 history notice removed Vittorio Romeo
Feb 6, 2013 at 20:13 answer added Leftium timeline score: 2
Feb 6, 2013 at 9:48 comment added teodron Well, Disney/Pixar might be doing it like you want, but there's a catch - they have progressive penalty forces - just watch this youtube.com/watch?v=00DXNmjIbsM
Feb 6, 2013 at 7:20 answer added Leftium timeline score: 15
Feb 4, 2013 at 21:14 answer added Erin Catto timeline score: 17
Feb 4, 2013 at 19:15 comment added dennmat I believe this is why a lot of physics engines run in iterations, correct me if I am wrong, does yours run in x amount of iterations recalculating positions as new forces/results of the first iteration change the expected result?
S Feb 4, 2013 at 16:23 history bounty started Vittorio Romeo
S Feb 4, 2013 at 16:23 history notice added Vittorio Romeo Draw attention
Feb 3, 2013 at 15:38 comment added Vittorio Romeo @dreta: I tried many things, I tried setting the velocity to the penetration vector and stuff like that. But it never worked properly. Setting the velocity to the penetration vector fixes the "fall-through" bug, but bodies stop when they hit each other. I also tried adding or subtracting from velocity. How would I implement the "impulse based solution" you're talking about?
Feb 3, 2013 at 15:24 comment added dreta @TravisG Oh, alright i see the issue.
Feb 3, 2013 at 15:18 comment added TravisG Still, if you want to have simple separation of objects without having everything bounce around after a collision, somehow this must be dealt with (e.g. in the first frame after loading the scene, where things may overlap without having actually moved beforehand). Either way, I think the answer to this question doesn't have anything to do with physics, but instead with logics (code implementation).
Feb 3, 2013 at 15:14 comment added TravisG @dreta his assumptions are fine. He pointed out that his mass for all objects is simply "1" for now, which makes his code sections valid. By the way, even though Box2D may deal with velocities directly, it somehow must deal with the same problem. If instead of applying a force, Box2D applies an impulse, it somehow must still deal with the fact that the impulse doesn't just go away once the objects are separated. Although, it's possible that it does in fact not deal with this at all and just lets the objects keep their energy (it would be like this in the real world after all)
Feb 3, 2013 at 15:11 comment added dreta Personally, i'd suggest picking up a book on physics engines, at least read the first few chapters on Newtonian physics. Your assumptions are incorrect and trying to reply to this question would mean having to teach you basics of physics while trying to explain high level algorithms for solving collisions.
Feb 3, 2013 at 15:06 comment added dreta Force does not equal acceleration, first of all. You need mass to calculate acceleration. If you're modifying positions to stop the two bodies from penetrating, you should use mass as well and move both bodies based on it. Applying a force equal to the penetration vector has no merit. Box2D is impulse based, it works on velocities directly, it may not be "correct", but it's good enough. Dealing with velocity changes in an impulse based engine is very simple, so could you specify if you definitively want a force based solution, or is the much simpler impulse based solution good enough.
Feb 3, 2013 at 13:39 history edited Vittorio Romeo CC BY-SA 3.0
added 83 characters in body
Feb 3, 2013 at 13:38 comment added Vittorio Romeo @TravisG: not yet, unfortunately. I'll add a bounty tomorrow if I don't get any reply.
Feb 3, 2013 at 12:57 comment added TravisG I'm interested in this. Have you come up with a solution yet?
Feb 3, 2013 at 4:07 history tweeted twitter.com/#!/StackGameDev/status/297919237899550720
Feb 2, 2013 at 16:13 history asked Vittorio Romeo CC BY-SA 3.0