En última instancia, creo que la respuesta a su pregunta dependerá de las necesidades de su aplicación en particular, ya que no existe una solución única para todos. Aunque hay una cantidad de recursos decentes en la web, se ahorrará mucho tiempo y frustración al elegir la detección de colisiones en tiempo real de Christer Ericson , que presenta con gran detalle una amplia variedad de técnicas y algoritmos, por ejemplo Código C ++.
Me ayudó a dar pequeños pasos antes de saltar a tratar de construir un gran sistema. Escribir una función para determinar si un punto está en un plano, luego si un punto está en un triángulo, si un rayo está en un triángulo, etc. Luego pasar a pruebas estáticas de varios sólidos convexos: AABB vs. Triángulo, etc. Las cosas que parecían impenetrables (perdón por el juego de palabras) al principio se volvieron menos desalentadoras. Aquí hay una lista de un buen número de pruebas, con código de ejemplo:
http://www.realtimerendering.com/intersections.html
Mientras tanto, como sé que no todo el mundo puede desembolsar 70-80 $ por un libro a voluntad, aquí hay algunos términos que puede considerar:
- Particionamiento espacial, octrees, quadtrees, árboles BSP
- BIH árboles
- Volúmenes delimitadores y jerarquías del volumen delimitador
- Detección de colisión discreta versus continua
- Teorema del eje de separación
- Algoritmo GJK