Выбор между AABB, OBB, сферами, капсулами... зависит от типа моделирования, которое вы используете, и ваших ограничений (обычно приложений реального времени).
Нужно взвесить все за и против и сделать свой выбор соответственно. Например, тесты с AABB очень быстрые, но вам нужно пересчитывать AABB, когда ваш объект вращается. Однако, если вы работаете с очень сложными объектами и имеете дело с BVH, обновление AABB-дерева довольно сложно. быстро, поскольку вам нужно только пересчитать («с нуля») нижние AABB, а более высокие строятся из дочерних AABB. С OBB тесты обходятся дороже, но вам не нужно будет пересчитывать свои OBB, если вы имеете дело с жесткими объектами.
Если вы решите использовать деформируемые объекты, дерево AABB (или дерево сфер), безусловно, будет лучшей идеей, так как ваше дерево в любом случае нужно будет обновить.
Вопрос в том, что будет дороже: накладные расходы, связанные с обновлением дерева AABB или с тестами наложения с OBB? Все это зависит от ваших симуляций: сложности объектов, среднего количества тестов CD в секунду и т. д. Вы можете найти несколько тестов различных библиотек CD, основанных на разных методах (BVH, сетки...) с различными формами, протестированных на конкретных задачах. Вот пример, который может показаться вам интересным.
Что касается реализации, поскольку все это исследовано много лет назад и реализовано во многих библиотеках, у вас не должно возникнуть никаких проблем. Вы можете взглянуть на Обнаружение столкновений в реальном времени Кристера Эриксона, на все эти вопросы даны ответы и объяснения очень четкие.
Вы также можете использовать сочетание разных форм, например. один для широкой фазы, а другой для узкой фазы (как только вы дойдете до листьев), но вам, вероятно, не понадобится что-то подобное.
person
BenC
schedule
14.11.2011