프로그래밍 공부

OBB

작성일
2023. 11. 6. 15:29
작성자
WDmil
728x90

OBB

 

Oriented Bounding Box로, 회전이 가능한 사각형 또는 직육면체를 사용하여. 두 객체가 충돌하는지 를 검출하는 방식이다.

 

각 객체는 로컬 좌표게에 따라 정렬된 사각형 또는 직육면체 충돌체로 표현되며, 이를 기반으로 충돌 검출과 충돌 처리를 수행한다.

 

OBB의 검사방식

  • 두 객체가 OBB를 생성한다.
    OBB는 로컬 좌표계에 기반하여 회전, 크기, 위치 등의 정보를 포함한다.

 

  • 두 객체의 OBB가 겹치는지 확인한다. 이를 위해 Separating Axis Teorem(분리 축 정리) 을 사용하여 OBB의 로컬 축들을 기준으로 프로젝션을 수행하고, 프로젝션 범위를 비교한다.

객체의 중심점을 확인

 

 

객체간의 거리를 확인.

 

  • 모든 축에서 겹치는 것을 확인 시 두 객체가 충돌했다고 간주한다.

 

장점

  • 회전이 가능한 객체를 검출 가능하다.
    회전각을 고려하여 충돌을 검출할 수 있다.

  • 다양한 형태의 충돌체 검출이 가능하다.
    사각형 뿐 아니라 다양한 형태의 충돌체를 표현할 수 있으며, 3D공간에서도 직육면체로 사용할 수 있어. 더 정교한 충돌 검출이 가능하다.

 

단점

  • 계산이 복잡하다.
    OBB 충돌 검출은 AABB에 비해 계산이 더 복잡하고 오버헤드가 클 수 있기 떄문에, 많은 오브젝트들이 충돌검출을 필요로 할 때 성능저하가 일어날 수 있다.

  • 구현이 복잡하다.
    OBB 충돌 검출은 로컬 좌표계 변환, 프로젝션, 분리 축 정리 등을 사용하여 복잡한 계산을 해야하기 때문에 구현이 상대적으로 어렵다.
728x90

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

평면방정식  (0) 2023.11.09
Slab method  (0) 2023.11.06
AABB  (0) 2023.11.06
DirectX3D 벡터의 외적  (0) 2023.10.22
DIrectX3D 벡터의 내적(Dot Product)  (0) 2023.10.22