Книга Кристера Эриксона «Обнаружение столкновений в реальном времени» (ISBN: 1-55860-732-3) - это недавно вышедшая (2005 г.) и широко оцененная книга, которая должна дать вам несколько хороших ответов.
Он начинается с базового учебника по некоторым математическим дисциплинам, который вам необходимо знать, а затем переходит к различным типам ограничивающих томов (сферы, ориентированные по оси ограничительные рамки, ориентированные ограничивающие блоки), обычно используемым при обнаружении столкновений. *
Далее для обсуждения будут предложены многочисленные алгоритмы обнаружения столкновений между различными комбинациями примитивов, такими как линии, треугольники, сферы, многоугольники, плоскости, ограничивающие объемы и т. Д.
Также важным является освещение некоторых из основных методов пространственного разделения и организации ваших объектов (иерархии томов, деревья BSP, октри и т. Д.). Это существенно ускоряет обнаружение столкновений, поскольку позволяет вам подразделять ваши объекты, чтобы вы могли избежать ненужных сравнений между объектами (например, я знаю из своих структур данных, что объект A слишком далеко, чтобы ударить объект B, поэтому я даже не буду делать проверка расстояния).
Он также включает в себя некоторые сведения о том, как на самом деле проверять наличие столкновений между движущимися объектами (интервалы и т. Д.), Но имейте в виду, что, хотя это довольно здоровенная книга и хорошо описывает материал, она предназначена для обнаружения столкновения 1010 *, а не разрешение или ответ . Таким образом, это поможет вам определить, столкнулись ли два объекта, но не совсем, что с этим делать, то есть, как решить это. Тесты пересечений обычно дают вам данные, необходимые для принятия таких решений, но с точки зрения общей проблемы написания решателя , который использует процедуры обнаружения столкновений для обнаружения коллизий и затем решает, что с ними делать эта книга не охватывает это в глубину.