2016-05-20 3 views
0

Есть ли «простой» способ определить, пересекается ли два объекта, которые не могут быть aproximated для Cuboid?Выполнение столкновения в 3D

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

У меня есть вершины объектов, хранящихся в массивах (проанализировано из .obj) Разве вы не знаете, как проверить, пересекаются ли они?

+0

№ Также вы можете использовать обнаружение столкновений AABB на любой фигуре, нерегулярной или нет. – Serge

+0

Хорошо, но ящики AABB будут прямоугольными, и я хочу сохранить более или менее форму моего объекта. – Ch0mik18

ответ

0

Вы все еще можете использовать AABB для грубых столкновений. Если вы действительно хотите иметь более точное столкновение, вы можете продолжить проверку этих предварительно фильтруемых объектов, но нет действительно «простого» способа сделать это. Если вы не хотите использовать библиотеку, вам нужно будет проверить, содержит ли один куб вершины другого для всех возможных компоновки фигур. Тем не менее, это должно быть сносно с некоторой геометрией.

0

Вы можете использовать коллекцию AABB, сфер и цилиндров для приближения формы каждого объекта. В зависимости от сложности модели может потребоваться значительная работа, чтобы вручную определять различные объемы столкновений.

Дерево может использовать цилиндр для ствола и сферу для листвы. Грузовик мог использовать три куба, один для фронта, второй для кабины и третий для кровати. Столкновение между ними будет разрешено путем проверки ствола и листва на переднюю, кабину и кровать грузовика.

Смежные вопросы