I am looking for literature - or a simple explanation - on how the Farseer (and for that reason, the Box2D) collision detection system works - specifically the logic that comes after the broadphase culling:

  • What data structure does it use?
  • How does it use that data structure to determine if a collision has occurred?
  • How does it calculate the response normals?

NB: I am not asking how to use it, I merely want to know how it works as a matter of personal enlightenment.

  • \$\begingroup\$ Add a bounty and post the link to question on Farseer/Box2D boards. \$\endgroup\$ – Den Nov 2 '11 at 12:02
  • \$\begingroup\$ Have you considered jumping into the source and checking it out? \$\endgroup\$ – Richard Marskell - Drackir Nov 2 '11 at 18:26
  • \$\begingroup\$ @Drackir I definitely have been looking at the code - but it's hard to get started when I don't know what I am actually looking at :). Really; I am just look for a broad overview so that I have it at the back of my mind while reading the code. \$\endgroup\$ – Jonathan Dickinson Nov 2 '11 at 21:31

I really recommend Real-Time Collision Detection by Christer Ericson

It'll answer all your questions, go buy, rent, steal this book.

  • \$\begingroup\$ It's worth noting, that this book covers 3D collision detection, whereas box2d and farseer are 2D. \$\endgroup\$ – George Duckett Nov 2 '11 at 15:44
  • \$\begingroup\$ Many thanks. I'll avoid stealing it at all costs :). \$\endgroup\$ – Jonathan Dickinson Nov 2 '11 at 21:31

There is a small explanation of the Farseer 2.1 physics. It includes information on both SAT and Distance Grid detection.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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