В конечном счете, я думаю, что ответ на ваш вопрос будет зависеть от потребностей вашего конкретного приложения, поскольку не существует универсального решения для всех. Несмотря на то, что в Интернете есть ряд достойных ресурсов, вы сэкономите много времени и разочарования, если обнаружите обнаружение столкновений Кристера Эриксона в реальном времени. , в которой подробно рассматриваются разнообразные методы и алгоритмы, например C ++ код.
Это помогло мне сделать шаги ребенка, прежде чем пытаться построить грандиозную систему. Написание функции для определения, находится ли точка в плоскости, затем, если точка находится в треугольнике, если луч находится в треугольнике и т. Д. Затем перейдем к статическим испытаниям различных выпуклых тел: AABB против треугольника и т. Д. Времена, казавшиеся непроницаемыми (простите за каламбур), поначалу стали менее пугающими. Вот список большого количества тестов с примером кода:
http://www.realtimerendering.com/intersections.html
В то же время, поскольку я знаю, что не все могут просто раскошелиться на 70-80 долларов за книгу по желанию, вот некоторые термины, которые вы могли бы рассмотреть:
- Пространственное разбиение, Octrees, Quadtrees, BSP деревья
- Деревья БиГ
- Ограничивающие объемы и ограничивающие объемные иерархии
- Обнаружение дискретных и непрерывных столкновений
- Теорема о разделяющей оси
- Алгоритм GJK