I understand how box collision, sphere collision, and other such collisions work. However, how would one implement realistic 3D collisions? That is, objects would interact with one another as they would in real life. For example, take a rod and a torus. Assume that the thickness of the rod is smaller than the hole in the torus. With simple collision systems, as far as I know, inserting the rod into the hole of the torus would result in a collision detection. In reality, no collision would take place. Hopefully, that explains what I am looking for.

  • \$\begingroup\$ What have you researched so far? Why do you assume a anything would collide with an open hole in a torus, for example. \$\endgroup\$ – Patrick Hughes May 25 '13 at 23:19
  • \$\begingroup\$ Just use the model itself for collision detection, instead of simpler collision meshes. Be aware that this would consume a lot of execution time though. \$\endgroup\$ – Appleshell May 26 '13 at 0:30
  • \$\begingroup\$ @PatrickHughes, from my understanding of box collision, for example, a box surrounds the model in question (the torus) and would be used for collision detection. \$\endgroup\$ – LucasS May 26 '13 at 1:11
  • 4
    \$\begingroup\$ You're asking for an entire education in physics engines which includes: linear algebra + trig, brep models, spatial partitioning, solid body physics formulae, calculus for integration, and a basic understanding of simulations. And that's not even including the religious differences between impulse/response and continuous integration strategies. But if you really do understand box collisions, then imagine your torus made up of a bunch of tiny boxes... of course nothing would hit the boxes since there are none in the hole. That's how it works =) \$\endgroup\$ – Patrick Hughes May 26 '13 at 1:46
  • 1
    \$\begingroup\$ That's really nothing that can be answered in a comment. You should invest in a book about that topic, like amazon.com/Real-Time-Collision-Detection-Interactive-Technology/… \$\endgroup\$ – Appleshell May 26 '13 at 12:43

You can compound various primitives together to add accuracy to your collision model. For instance in your torus example, you could have a bounding box or sphere around the entire model but then also have a sphere that just encompasses the torus' hole. Then the algo would go: if rod is in box but not in holeSphere, then it's colliding, else if rod is in box and holeSphere, it is not colliding.

You can often use a few basic primitives (planes, rays, boxes, spheres) together to get an acceptable level of accuracy.

Definitely get 'Real time collision detection' by Chtister Ericsson,.


Not the answer you're looking for? Browse other questions tagged or ask your own question.