콜라이더를 만들어서 콜라이더 충돌간에 찾아내는건 대충 아래와 같은걸 한다는 뜻임.


1. 두 콜라이더가 교차했는지 여부 판정

1-1 광역 페이즈 자료구조에 노드 삽입 (일반 자료구조 삽입보다 느리게 휴리스틱 따져가면서 노드를 추가함)

1-2 해당 자료구조를 나름 감소된 알고리즘 따라 순회하면서 충돌 가능성 탐지

1-3 충돌가능성이 있다면 실제로 충돌이 있었는지 콜라이더 교차 판정 


2. 교차 했을때 각 콜라이더 기준 접촉점 생성

2-1. 침투 깊이 생성

2-2. 침투 법선 생성

2-3. 침투 접면 생성 (2차원에 스팬하는 접선 벡터 2개)

2-4. 로컬 접촉점, 월드 접촉점 생성


3. 접촉 매니폴드 생성 (3D는 최소 접촉점 4개, 2D는 최소 접촉점 2개)

3-1. 접촉점 클러스터 줄이는 알고리즘으로 접촉점 수를 적절한 양으로 줄임


4. 충돌 응답

--- 아마 이건 안할거니까 스킵---


레이케스트

1. 광역 페이즈 노드와 광선이 교차하는지 순회

2. 교차 판정


여기서 얼마나 뺄지는 모르겠지만 2, 3을 빼더라도 1만 해도 레이캐스트 대비 심각함.

왜냐하면 레이캐스트는 1번의 노드삽입을 할 필요가 없이 바로 1-2, 1-3만 수행하면 되거든;;


교차 하는지 안하는지 판정도 쉬워서

구 vs 구를 제외하면 레이케스트가 모든 면에서 빠르다고 보면 됨.