Обнаружение столкновений и реакция на столкновение

Я пытался изо всех сил представить несколько движущихся/вращающихся объектов, используя андроиды Opengl. Теперь я хотел бы позволить им столкнуться и ответить реалистично.

Исследуя проблему, я могу найти много ресурсов, которые подсказывают мне, как определить, сталкиваются ли две 3d фигуры в текущем фрейме (или они будут сталкиваться в следующем кадре). Однако мне трудно найти ресурсы, описывающие, как получить информацию о произошедшем столкновении.

Например, используя выпуклые фигуры, я хотел бы знать, какая вершина столкнулась с какой плоскостью сначала, в какое время между кадром. Таким образом, я могу знать, как каждая фигура должна реагировать в своем положении и вращении.

Я могу описать движение каждой вершины лучом и движение плоскостей, а также между каждым кадром. Тем не менее, я немного озадачен тем, как я буду использовать это, чтобы найти их будущие пересечения с течением времени, и будет ли это когда-либо возможной эффективной во времени. Я прочитал некоторые методы для уменьшения необходимости в сложных вычислениях, таких как октеты и столбцы.

Я новичок в этой теме, поэтому любые ресурсы или советы о том, как эти проблемы обычно обрабатываются, будут оценены. Спасибо за ваше время!

Ответ 1

Для обнаружения столкновения решение, которое вы ищете, называется непрерывным обнаружением столкновений, и объяснение может быть найдено здесь. Обнаружение контактов между двумя телами относительно просто, особенно если вы игнорируете скорости angular, но если вы выполняете симуляцию с более чем двумя объектами, вам нужно будет решить TOI глобально, потому что порядок столкновений будет иметь значение и не может быть определен путем изучения изолированные пары столкновений (не так просто).

Также вы должны указать конкретную проблему, которую пытаетесь решить, потому что поиск TOI (время воздействия) не является тривиальной задачей и аппроксимация может быть совершенно верной решение в определенном сценарии (например, игровое моделирование).

В блоге который я уже приводил в ссылках, содержатся доступные статьи по этому вопросу и ссылки на дальнейшие чтения, если вы хотите перейти дальше.

Ответ 3

прекратите изобретать колесо и попробуйте уже проверенные решения.

физика пули (поиск google)
ode показано в сообщении от ville krumlinde

* PS: * обнаружение столкновения является сложной темой и связано с некоторой волосатой математикой. Даже когда вы используете другие библиотеки.:)