콜라이더를 만들어서 콜라이더 충돌간에 찾아내는건 대충 아래와 같은걸 한다는 뜻임.
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 구를 제외하면 레이케스트가 모든 면에서 빠르다고 보면 됨.
저도 그래서 3d 프로젝트 할때 레이캐스트로 충돌처리하고 라인렌더러로 궤적표시했슴