2014-03-19 3 views
30

안녕하세요. 에서 복셀 게임을 만들고 있습니다. 배워야 할 모든 다른 것들을 연구하는 동안 많은 게임이 충돌 감지에 AABB을 사용하는 것으로 나타났습니다. 그리고 나서 Minecraft에서도 AABB을 보았습니다. 하지만 내가 구글을 쓸 때 AABB은 다른 사람들의 코드 나 역사 책에서 나온 몇몇 조직과 함께 나온다. Stackoverflow, 무엇입니까 AABB?AABB - 충돌 감지 란 무엇입니까?

답변

35

AABB는 "Axis-Aligned Bounding Box"을 나타냅니다.

이것은 일반적으로 두 개의 객체가 접촉하고 있는지를 확인하는 데 사용되는 상당히 계산적이며 메모리 효율적인 볼륨 표현 방법입니다.

축 정렬 되었기 때문에 실제 3D 객체를 잘 "꼭 맞는"것은 아닙니다. AABB 검사는 객체가 충돌할지 여부를 확인하기위한 대략적인 첫 번째 근사치로 사용됩니다. 그런 다음 AABB 검사가 통과되면보다 자세한 검사가 수행됩니다.

예 :

은 당신의 세계를 2 차원 상상해, 당신은 그래프 용지 한 장에 그립니다. 세계에 물건이 있습니다 (공, 나무 등). 개체 중 하나에 대해 AABB를 만들려면 개체 주위에 직사각형을 그려서 선을 종이의 눈금 선과 평행하게 만듭니다.

두 개체에 대한 AABB가있는 경우 AABB가 겹치는 지 확인하기 위해 몇 가지 간단한 계산을 수행 할 수 있습니다. 두 객체가 겹치지 않으면 두 객체가 서로 닿을 수 없기 때문에 충돌 알고리즘을 쉽게 시작할 수 있습니다.

이렇게하면 3D (및 more-Ds)로 쉽게 일반화됩니다.

gamedev.stackexchange.com도 확인할 수 있습니다.

+0

또한 voxel 게임이 대부분 입방체이기 때문에 축 정렬이라고 생각하지는 않습니다.하지만 RPG를 만들면 내 사람이 공평하게 보이지 않는 벽을 치고 싶다는 생각이 들었습니다. – SemperAmbroscus

+0

thx 나는 이미 gamedev에 등록하여 여기에 게시하는 것이 더 쉽다고 생각했습니다. – SemperAmbroscus

+0

@FeatheredOrcian : 예, 복셀이 이미 축 정렬되어 있고 AABB가 훌륭하면 그렇습니다. 별도로 저장하지 않아도되지만 보셀 데이터에서 데이터를 파생시킬 수 있습니다. – jwd

4

축 정렬 경계 상자

기본적으로는 완전히 일반적으로 3 차원 좌표의 쌍에 의해 정의 된 형태를 포함 할 수있는 가장 작은 투자 골.

두 AABB 사이의 충돌을 확인하는 것은 모서리의 X, Y 및 Z 값의 범위를 확인하기 만하면되므로 매우 빠릅니다.