프로그래밍 공부
작성일
2023. 11. 6. 15:28
작성자
WDmil
728x90

AABB

 

축이 정렬된 바운딩 박스 ( Axis-Aligned Bounding Box)를 이용하여, 두 객체가 충돌하는지를 파악하는 간단한 알고리즘이다.

 

객체의 경계를 모두 포함하는 최소크기의 정렬된 사각형 충돌체로 구성되며. 각 축이 절대축과 평행한다.

 

AABB의 검사방식

 

  1. 각 객체의 AABB를 생성한다.
    이때 AABB는 해당 객체의 충돌 콜리전의 바운딩 박스를 구성하는 XY좌표로. 좌상단, 우상단, 좌하단, 우하단 으로 이루어져 있다.
  2. 두 객체의 AABB가 겹치는지를 확인한다.
    AABB의 겹침 여부는 각 축의 범위를 비교하여 판단한다. X축과 Y축의 범위가 겹치는지를 서로 비교하여 판단하게 된다.
  3. 모든 축에서 겹침을 확인하면, 두 객체는 충돌한다고 간주한다. 그렇지 않았다면 두 객체는 충돌하지 않았다고 판단한다.

 

장점

  • 간단하고 빠른 충돌검출이 가능하다.
    AABB 충돌방식은 매우 간단한 수학계산을 통해 충돌을 검출하게 된다.

단점

  • 회전된 객체 처리가 불가능하다.
    계산식 상 축이 정렬된 객체 기준으로 작성되어 있기 때문에, 축이 회전되어있다 라고 가정한다면 회전체에 대한 접근이 불가능하다.
  • 사각형 에 대한 객체충돌 검사만 가능하다.
    수식이 직선과 직선상의 좌표계산이기 때문에, 회전체, 다각체 에 대한 충돌검사가 불가능하다.

 

AABB의 충돌처리방식

 

 

 

충돌처리 시 false가 리턴되는것을 직관적으로 이해할 수 있다.

 

ALeft 는 Au_y 가 Bd_y 보다 큼 으로 false,

ADown 는 Af_x 가 Br_x 보다 큼 으로 false

 

그럼으로 false가 리턴되어 충돌됨을 알 수 있다.

728x90

'컴퓨터 용어 정리 > 게임 수학' 카테고리의 다른 글

Slab method  (0) 2023.11.06
OBB  (0) 2023.11.06
DirectX3D 벡터의 외적  (0) 2023.10.22
DIrectX3D 벡터의 내적(Dot Product)  (0) 2023.10.22
삼각비 계산근거  (0) 2023.10.21