Трехмерное непрерывное перемещение AABB против статического выпуклого обнаружения столкновения многогранника - PullRequest
0 голосов
/ 15 марта 2019

В настоящее время я пытаюсь внедрить простую систему непрерывного обнаружения столкновений. Я задавался вопросом, возможно ли для движущейся AABB вычислить расстояние, которое она может перевести в произвольном направлении d, прежде чем оно пересечет выпуклый многогранник. Вот простое объяснение в 2D: enter image description here

Здесь мне нужна длина зеленых линий (оранжевая AABB - это начальная позиция, а красная AABB - это место, где пересекаются оба коллайдера).

Это также эквивалентно попытке передать лучевую разницу Минковского A⊕-B от начала координат в направлении d, где A - мой статический выпуклый многогранник, а B - мой движущийся AABB: enter image description here

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

Когда гуглил, я видел алгоритм, который это делает, называемый GJK, но кажется, что он возвращает только общее минимальное расстояние, а не направленное расстояние.

Заранее спасибо за ваши ответы!

PS: Пожалуйста, извините за мой плохой английский и мой полный недостаток художественного таланта, используя краску.

...