Подтвердить что ты не робот

Что такое AABB - обнаружение конфликтов?

Привет, я делаю voxel игру в Java, и, исследуя все разные вещи, которые мне нужно изучить, я заметил, что во многих играх используется AABB для обнаружения столкновений. И затем я вспомнил, что видел в "Minecraft" AABB. Но когда я говорю, что AABB, он только придумывает код других людей или какую-либо организацию из книги истории. Stackoverflow, что AABB?

4b9b3361

Ответ 1

AABB означает " Опорный флажок с расширением оси.

Это довольно эффективный для вычислений и памяти способ представления тома, обычно используемый для проверки того, могут ли быть затронуты два объекта.

Так как он выровнен по оси, он не обязательно "подходит" вашему реальному 3D-объекту очень хорошо. Проверка AABB часто используется в качестве грубого первого приближения, чтобы увидеть, могут ли объекты сталкиваться. Затем, если проверка AABB проходит, выполняются более подробные проверки.

Пример:

Представьте, что ваш мир 2D, и вы рисуете его на листе графовой бумаги. У вас есть объекты в мире (шар, дерево, что угодно). Чтобы сделать AABB для одного из объектов, вы рисуете прямоугольник вокруг объекта, делая ваши линии параллельными линиям сетки на бумаге.

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

Это довольно просто обобщает на 3D (и более-Ds).

Возможно, вы захотите также проверить gamedev.stackexchange.com.

Ответ 2

Оболочка с выровненной осью

В основном это самый маленький Cuboid, который может полностью содержать форму, обычно определяемую парами 3d-координат.

Очень быстро проверить наличие столкновений между двумя AABB, поскольку все, что вам нужно сделать, это проверить диапазон значений X, Y и Z для углов.