En fin de compte, je pense que la réponse à votre question dépendra des besoins de votre application particulière, car il n'y a pas de solution universelle. Bien qu'il existe un certain nombre de ressources décentes sur le Web, vous vous épargnerez beaucoup de temps et de frustration en choisissant la détection de collision en temps réel de Christer Ericson , qui présente en détail une grande variété de techniques et d'algorithmes, par exemple Code C ++.
Cela m'a aidé à faire des pas de bébé avant de me lancer dans la construction d'un grand système. Écriture d'une fonction pour déterminer si un point est dans un plan, puis si un point est dans un triangle, si un rayon est dans un triangle, etc. les choses qui semblaient impénétrables (pardonnez le jeu de mots) sont devenues moins intimidantes au début. Voici une liste d'un bon nombre de tests, avec un exemple de code:
http://www.realtimerendering.com/intersections.html
En attendant, comme je sais que tout le monde ne peut pas débourser 70-80 $ pour un livre à volonté, voici quelques termes que vous voudrez peut-être examiner:
- Cloisonnement spatial, Octrees, Quadtrees, arbres BSP
- BIH Trees
- Volumes limites et hiérarchies de volumes limites
- Détection de collision discrète ou continue
- Théorème d'axe de séparation
- Algorithme GJK