Jestem w punkcie mojej gry, w którym muszę dodać system kolizji. Wypróbowałem jBullet i chociaż zadziałało, nie szukałem tego. Chcę po prostu prosty sposób przetestowania, czy zderzają się dwa zorientowane drzewa obwiedni (OBB).
Zamierzałem zrobić kolizję, używając drzewa. Stwórz AABB dla fazy szerokofalowej, a jeśli to przejdzie test, jeśli każdy OBB w drzewie zderzy się z drugim drzewem.
W Internecie znalazłem kilka rzeczy, ale nie mogłem ich całkowicie zrozumieć. O to proszę o stronę internetową lub zasób, który dobrze wyjaśnia kolizje OBB 3D?
Dowiedziałem się, że GJK jest szybszy niż SAT i wydaje mi się, że jest w stanie powiedzieć mi, jak daleko pudełka się przenikają. Znalazłem trochę rzeczy z GJK, ale to nie były pudełka; zamiast tego bardziej skomplikowane i mylące rzeczy.
Chcę tylko móc wykonać OBB z 3 wektorów: środka, rozmiaru i obrotu każdej osi. Następnie można przetestować kolizje z nimi. Z góry dziękuję za wszystko, co publikujesz.
źródło
Odpowiedzi:
Widziałem link w twoim komentarzu, który pokazywał postać z OBB, które były rozmieszczone wokół siatki. Czasami można to zrobić za pomocą sfer ograniczających, a następnie nie ma problemów z orientacją, a test sfery jest zwykle szybszy.
Twoja postać, jeśli pokaże ograniczające struktury jak w twoim linku, będzie wyglądać bardziej jak człowiek z Michelin .
źródło
Oto faktyczny przykład działania AABB, który pochodzi bezpośrednio z mojego silnika gry:
Wystarczy usunąć inne metody typu Bounding.
źródło
Molly Rocket jest na zawsze twoim przyjacielem.
http://mollyrocket.com/849
Ale wygląda na to, że źle rozumiesz ogólne zastosowanie obwiedni. Tak naprawdę nie używasz go do fizycznego systemu zderzeń. Zwłaszcza, gdy może być okropnie nieefektywne dla tego rodzaju zastosowania.
Być może myślisz o zapytaniu kolizyjnym Graph Scene? Gdy sprawdzisz, czy obiekt wchodzi do QuadTree lub Octree, i szybko przebudujesz wykres.
źródło