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

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


person SemperAmbroscus    schedule 19.03.2014    source источник


Ответы (2)


AABB означает «ограничивающая рамка, выровненная по оси».

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

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

Пример:

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

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

Это довольно легко обобщается на 3D (и не только на D).

Вы также можете посетить gamedev.stackexchange.com.

person jwd    schedule 19.03.2014
comment
Кроме того, поскольку воксельная игра в основном состоит из кубов, я не думаю, что выравнивание по оси - это проблема, хотя, если бы я делал ролевую игру и хотел, чтобы мой человек выглядел реалистично, не ударяясь о стену, которая находится на приличном расстоянии ... - person SemperAmbroscus; 19.03.2014
comment
@FeastedOrcian: Да, если ваши воксели уже выровнены по осям, тогда AABB отлично подходят. Возможно, вам даже не понадобится хранить их отдельно, но вы можете получить их данные из данных вокселей. - person jwd; 19.03.2014

Выровненная по оси ограничивающая рамка

По сути, это самый маленький кубоид, который может полностью содержать форму, обычно определяемую парой трехмерных координат.

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

person Tim B    schedule 19.03.2014