오다기리 박의 알고리즘 노트

SAT(Separating Axis Test) 본문

컴퓨터 그래픽스/메쉬 기하학

SAT(Separating Axis Test)

오다기리 박 2022. 3. 14. 13:23

분리된 두개의 convex 다면체 A, B 가 있을 때 다면체가 축에 투영된 구간 또한 최소 하나는 분리되어 있다. 만약 다면체가 concave하다면 이 법칙은 성립하지 않는다. 예를 들어 우물안에 바구니가 있다고 하자. 바구니와 우물은 서로 닿지 않지만 둘을 분리시키는 평면은 존재하지 않는다. 왜냐면 우물이 concave하기 때문이다.

 

 

A와 B가 서로 떨어져 있을 때, 둘은 다음 중 하나에 직교하는 축으로 분리되는지 테스트해본다.

  • A의 한 면
  • B의 한 면
  • 각 다면체의 에지

 

 

첫번째와 두번째 테스트 : 한 오브젝트가 다른 오브젝트 모든 면의 반대편에 있다면 둘은 만나지 않음을 의미한다.

세번째 테스트 : 모든 면이 둘을 분리하는 평면을 형성할 수 없는 경우, 두 다면체의 에지를 서로 외적하여 얻은 벡터가 분리평면의 법선이 된다.

 

 

 

[참고] Real-time rendering. Akenine-Moller, Tomas, Eric Haines, and Naty Hoffman.