Позволяет ли btGhostObject использовать сложные сетки (не только AABB)?

Это печально в его документах:

BtGhostObject может отслеживать все перекрывающиеся объекты. По умолчанию это перекрытие основано на AABB. Это полезно для создания контроллера персонажа, датчиков / триггеров столкновений, взрывов и т. Д.

Означает ли это, что это только AABB своей базовой сетки и, следовательно, обнаруживает только столкновения с AABB, а не сложную структуру сетки?

0

Решение

Для диспетчера столкновений нет разницы между призрачным объектом и твердым телом: они ведут себя одинаково как в широкой, так и в узкой фазе. Если вы выполните итерацию по массиву диспетчера, вы увидите правильные столкновения с объектами-призраками. Документация относится к btGhostObject внутренний кеш перекрывающихся объектов, доступный через getOverlappingObject(int index) / getNumOverlappingObjects() методы. Этот кеш заполняется в широкой фазе (таким образом, очевидно, что используется только AABB), и вы должны установить правильный обратный вызов пары, чтобы это работало (world->getPairCache()->setInternalGhostPairCallback(new btGhostPairCallback);). Вы можете перебрать этот кеш в пост-тике и проверить фактические коллизии.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]