Por fim, acho que a resposta para sua pergunta dependerá das necessidades de seu aplicativo específico, pois não há uma solução única para todos. Embora haja vários recursos decentes na Web, você economizará muito tempo e frustração ao detectar a detecção de colisão em tempo real da Christer Ericson , que apresenta detalhadamente uma ampla variedade de técnicas e algoritmos, por exemplo Código C ++.
Isso me ajudou a dar pequenos passos antes de tentar construir um grande sistema. Escrevendo uma função para determinar se um ponto está em um plano, se um ponto está em um triângulo, se um raio está em um triângulo, etc. Em seguida, passamos para testes estáticos de vários sólidos convexos: AABB vs. Triangle, etc. as coisas que pareciam impenetráveis (perdoe o trocadilho) a princípio se tornaram menos assustadoras. Aqui está uma lista de um bom número de testes, com código de exemplo:
http://www.realtimerendering.com/intersections.html
Enquanto isso, como eu sei que nem todos podem pagar entre 70 e 80 dólares por um livro à vontade, eis alguns termos que você pode querer procurar:
- Árvores de Particionamento Espacial, Octrees, Quadtrees, BSP
- Árvores BIH
- Volumes delimitadores e hierarquias de volume delimitador
- Detecção de colisão discreta vs. contínua
- Teorema do Eixo Separador
- Algoritmo GJK