Ostatecznie myślę, że odpowiedź na twoje pytanie będzie zależeć od potrzeb konkretnej aplikacji, ponieważ nie ma jednego uniwersalnego rozwiązania. Chociaż w sieci znajduje się wiele przyzwoitych zasobów, zaoszczędzisz sobie dużo czasu i frustracji, wybierając wykrywanie kolizji w czasie rzeczywistym Christera Ericsona , które szczegółowo opisuje szeroką gamę technik i algorytmów, na przykład Kod C ++.
Pomogło mi to zrobić krok po kroku, zanim zacząłem budować wielki system. Pisanie funkcji w celu ustalenia, czy punkt znajduje się na płaszczyźnie, a następnie jeśli punkt jest w trójkącie, jeśli promień jest w trójkącie itp. Następnie przechodzimy do testów statycznych różnych wypukłych brył: AABB vs. Trójkąt itp. Z z czasem rzeczy, które wydawały się nieprzeniknione (wybaczcie kalambur) na początku stały się mniej zniechęcające. Oto lista dużej liczby testów wraz z przykładowym kodem:
http://www.realtimerendering.com/intersections.html
Tymczasem, ponieważ wiem, że nie każdy może dowolnie wydać 70-80 $ na książkę, oto kilka terminów, które możesz chcieć przyjrzeć:
- Partycjonowanie przestrzenne, ósemki, czwórki, drzewa BSP
- Drzewa BIH
- Granice woluminów i hierarchie woluminów granicznych
- Dyskretne a ciągłe wykrywanie kolizji
- Twierdzenie o separacji osi
- Algorytm GJK