3 ms·
There are many such algorithms, and it is an active area of research especially in the area of soft body physics (cloth, human tissue, etc) where precise collis
by dfbrown 13y ago
There are many such algorithms, and it is an active area of research especially in the area of soft body physics (cloth, human tissue, etc) where precise collision handling is very important.
Most rigid body simulations use discrete collision detection with fixed time steps, so it only checks for collisions at specific points in time. This is fast, but can cause issues where fast moving objects passing through thin objects (such as a bullet through a pane of glass). The alternative is called Continuous Collision Detection in which you calculate exactly when two objects will collide (or have collided) and can then simulate up to that point (or roll back to that point) and deal with the collision. One naive technique to do this is after integrating your simulation forwards, you use the volume each object swept out in that time step as its collision geometry instead of just the shape of the object at its new position. This solution has issues; it doesn't tell you when two objects collided and it can give false positives, but it works ok for rigid body simulations.
Some recent papers on the subject with more exact (and complicated) techniques:
http://www.cs.columbia.edu/cg/ACM/ http://www.cs.columbia.edu/cg/ACM/
http://www.cs.ubc.ca/~rbridson/docs/brochu-siggraph2012-ccd.pdf http://www.cs.ubc.ca/~rbridson/docs/brochu-siggraph2012-ccd....
- rcthompson 13y agoIt would seem that Breakout-type games present an especially simple case for collision detection. The ball always continues in a straight line, and all the blocks are stationary. I would think that in these conditions, the game could really compute exactly when and where the next collision would happen. The paddle it'd slightly harder, but its motion is still constrained to an axis, so you could compute the ball's collision time with that axis and then decide what to do based on where the paddle is at that time. Edit: To put it more simply, as soon as the ball leaves the paddle, isn't it immediately possible to exactly compute its complete path up to the next contact with the paddle "axis"? Do any Breakout games do this?