К сожалению, да, если ваш персонаж вращается, вам нужно пересчитать AABB, и это не обязательно будет плотной посадкой. Если у вас есть прямоугольник и поверните его, чтобы он больше не находился рядом, AABB будет больше, чем объект.
AABB быстр, потому что тест пересечения очень прост, но, как вы уже обнаружили, становится проблематичным, когда необходимы точные пересечения для объектов, не выровненных по осям AABB.
AABB все еще полезен для быстрых тестов, для которых, я подозреваю, созданы эти деревья. С помощью дерева AABB вы можете быстро исключить большие массивы объектов из более точного этапа тестирования. Если запрос возвращает пару дополнительных объектов, это не имеет большого значения. В случае с повернутым персонажем это может означать, что ваш персонаж считается таким, каким он является на самом деле.
Дерево AABB легко поддается этому, поскольку каждый раз, когда вы проходите тест, вы углубляетесь в дерево и углубляетесь в детали.
Вы можете использовать Ориентированную ограничивающую рамку (OBB), когда вам нужны действительно точные пересечения. Это может быть реализовано с помощью теоремы о разделяющей оси . Я вижу, что oz-collide уже поддерживает OBB.
На OBB есть много ресурсов, этот мне помог:
GPWiki по теореме о разделяющей оси
Вот реализация .
Вы можете рассчитать AABB из OBB, если вам нужно.