협상 충돌 탐지 알고리즘


10

충돌 감지에는 3 단계가 있습니다.

  1. Broadphase : 루프 속도를 높이면 상호 작용할 수있는 모든 대상간에 반복되고 오 탐지가 허용됩니다.

  2. 협상 (Narrowphase) : 그들이 충돌하는지 여부, 때로는 오 탐지 여부를 결정합니다.

  3. 해결 : 충돌을 해결합니다.

내가 묻는 질문은 협소에 관한 것입니다. 복잡성과 정확도가 다른 여러 알고리즘이 있습니다.

  1. Hitbox 교차점 : 이것은 a-posteriori 알고리즘으로 복잡도가 가장 낮지 만 너무 정확하지는 않습니다.

  2. 색상 교차 : 각 픽셀에 대한 Hitbox 교차, a-posteriori, 완벽한 픽셀, 시간과 관련하여 정확하지 않음, 높은 복잡성

  3. 축 정리 분리 : 삼각형에 더 자주 사용되지만 삼각형을 위해 더 자주 사용되지만 마지막 프레임을 고려할 때 가장자리를 찾을 수 없으므로 더 안정적입니다.

  4. Linear raycasting : 반 현실적으로 보이는 물리학에 유용한 A-priori 알고리즘은 SAT보다 훨씬 정확한 교차점을 찾습니다.

  5. 스플라인 보간 : 선형 광선보다 훨씬 정확한 A-priori, 훨씬 더 복잡한.

내가 잊어 버린 것이 더 많을 것입니다. 문제는 SAT를 사용하는 것이 더 좋은시기, 광선, 스플라인 때 및 더 좋은 것이 있는지에 관한 것입니다.

답변:


6

당신이 놓친 두 가지는 바로 GJK와 MPR입니다.

GJK는 두 개의 볼록 다각형의 가장 가까운 점을 찾기위한 알고리즘입니다. 약간의 추가 작업을 통해 교차 객체의 사건 지점을 찾아 충돌 매니 폴드를 계산할 수 있습니다. 이것은 SAT를 사용하는 것처럼 다각형 클리핑을 통해 이루어 지지만 GJK는 몇 가지 단계를 저장합니다 (이미 가장 가까운 점이 있기 때문에).

MPR (Minkowski Portal Refinement)은 GJK와 유사한 또 다른 알고리즘입니다 (둘 다 Minkowski 공간을 사용함). GJK와 같이 교차하지 않는 객체 사이에서 가장 가까운 지점을 찾을 수는 없지만 게임에는 다른 많은 좋은 속성이 있으며 접촉 매니 폴드를 얻는 데 사용됩니다.

MPR은 게임에서 가장 인기있는 것 중 하나입니다. 매우 효율적이고 수치 적으로 안정적이며 구현하기 쉽습니다.

다른 좁은 단계는 특수 게임에서 더 많이 사용됩니다. 레이싱 게임은 일반적으로 실제 타이어를 모델링 할 때 레이 캐스팅을 사용하며 기존 충돌 모양 및 해상도 모델링을 사용하여 현실적인 (또는 재미있는) 동작을 아직 구현할 수는 없습니다. 선호하는 "Mario-like"물리학은 전통적인 물리 알고리즘으로 모델링되지 않으므로 플랫 포머는 일반적으로 고도로 사용자 정의 된 충돌 및 물리학을 사용합니다. 유체에 대한 충돌 및 물리학 방법이 다른 경우가 종종 있습니다.

보다:


3

나는 정리 축이 아닌 분리 축 테스트 라고 말하고 싶었다 .

비선형 다각형 (2D)에는 SAT를 사용하지만 상대 선형 모션에 대처하도록 확장 할 수는 있습니다.

http://elancev.name/oliver/2D%20polygon.htm#tut3

2D에서 GJK를 사용하지 마십시오. 실제로 SAT를 강제하는 것보다 실제로 느립니다.

사용할 수있는 또 다른 기술은 Minkowski Difference로, 한 개체를 특정 지점으로 축소하고 다른 개체를 첫 번째 모양으로 '성장'합니다. 그런 다음 훨씬 쉬운 점에 대해 결합 된 물체를 테스트합니다. 이것은 침투 거리와 법선을 제공합니다. 이 툴은 새로운 충돌 감지 문제에 접근하는 데 개념적으로 매우 유용합니다. SAT보다 시각화하기 쉽습니다.

다각형 (및 다면체) 이동 및 회전을 위해 보수적 발전을 사용하여 정확한 시간 및 접점을 찾을 수 있습니다.

http://www.continuousphysics.com/BulletContinuousCollisionDetection.pdf

내가 쓴 블로그 블로그에서 이러한 기술에 대해 더 많이 읽을 수 있습니다.

http://www.wildbunny.co.uk/blog/2011/04/20/collision-detection-for-dummies/

희망이 도움이됩니다!

건배, 폴


2
분리 축 정리 : 두 개의 볼록한 물체의 돌출부가 물체가 분리되어있는 경우 분리되는 축이 존재합니다. 분리 축 테스트 : 앞서 언급 한 정리를 실제로 적용하는 것 같습니다.
Eric

0

이것은 실제로 당신이 가진 게임의 유형에 달려 있습니다. 위의 각 방법에는 고유 한 장단점이 있습니다.

그러나 SAT는 일반적인 물리 라이브러리에 대한 경험에서 매우 표준입니다. Box2D는 광범위하게 사용합니다 (Angry Birds 및 기타 여러 게임에서 Box2D 사용).

SAT 또는 Hitbox 교차와 혼합 된 색상 교차의 변형은 Sonic, Megaman과 같은 게임에서 좋은 결과를내는 데 사용됩니다.

그래도 # 4와 # 5에 대해서는 잘 모릅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.