Istnieją trzy fazy wykrywania kolizji.
Broadphase : Pętla między wszystkimi obiektami, które mogą oddziaływać, dozwolone są fałszywe alarmy, jeśli przyspieszyłoby to zapętlenie.
Narrowphase : Określa, czy się zderzają, a czasem, jak, nie ma fałszywych trafień
Rozdzielczość : rozwiązuje kolizję.
Pytanie, które zadaję, dotyczy wąskiej fazy. Istnieje wiele algorytmów różniących się złożonością i dokładnością.
Przecięcie Hitboksa : jest to algorytm a posteriori, który ma najniższą złożoność, ale także nie jest zbyt dokładny,
Przecięcie kolorów : Przecięcie Hitboksa dla każdego piksela, a-posteriori, piksele idealne, niedokładne pod względem czasu, większa złożoność
Twierdzenie o separacji osi : jest używane częściej, dokładniej dla trójkątów, jednak a-posteriori, ponieważ nie może znaleźć krawędzi, biorąc pod uwagę ostatnią klatkę, jest bardziej stabilna
Liniowy raycasting : Algorytm A-priori, przydatny w fizyce o pół realistycznym wyglądzie, znajduje punkt przecięcia, nawet bardziej dokładny niż SAT, ale o większej złożoności
Interpolacja splajnu : A-priori, jeszcze bardziej dokładna niż promienie liniowe, jeszcze większa podwójność.
Prawdopodobnie jest wiele innych, o których zapomniałem. Pytanie brzmi, kiedy lepiej używać SAT, kiedy promienie, kiedy splajny i czy jest coś lepszego.
źródło
To zależy od rodzaju posiadanej gry. Każda z powyższych metod ma swoje własne kompromisy.
Jednak SAT jest dość standardowym doświadczeniem dla bibliotek fizyki ogólnej, np. Box2D korzysta z niego intensywnie (Angry Birds i wiele innych gier korzysta z Box2D).
Warianty przecięcia kolorów zmieszane ze skrzyżowaniem SAT lub Hitbox są używane w grach takich jak Sonic, Megaman z dobrymi wynikami.
Jednak niewiele wiem o punktach 4 i 5.
źródło