Ale w jaki sposób wykrywa się kolizję na kształtach wykonanych z małych trójkątów?
Nie robiąc tego.
Wykrywanie kolizji z dowolną kolekcją trójkątów (lub, co gorsza, między dwiema kolekcjami dowolnych trójkątów) jest zbyt drogie.
Zamiast tego zwykle wykrywamy kolekcję w sposób zhierarchizowany, zaczynając od niezwykle prostych, prostych kształtów (takich jak pudełka lub kule), które przybliżają (słabo) obiekt leżący pod spodem.
To pozwala nam szybko odrzucić większość potencjalnych kolizji jako „nie występujące”, co jest typowym przypadkiem. W przypadku, gdy taki prymitywny test mija, co wskazuje na potencjalne rzeczywiste zderzenie, a my przystępujemy do wykonania kontroli w oparciu o bardziej szczegółowe przybliżenie podstawowego kształtu (takiego jak ten wykonany z wielu ciasno dopasowanych kształtów kapsułek lub wielu wyrównane ramki graniczne).
Zasadniczo wykrywanie kolizji rozpoczyna się od prymitywnych testów, a wraz z tymi testami przechodzi do coraz bardziej szczegółowej reprezentacji. Ten obraz, dostarczony przez Shiro w komentarzu do odpowiedzi Alexandre'a , ilustruje, w jaki sposób model złożony (człowiek) może być reprezentowany przez szereg prostszych kształtów:
Rzadko mamy rzeczywiście trzeba wykonać kolizji na poziomie indywidualnym trójkąta, a gdy robimy my zwykle stosowane metody cruder drążyć do bardzo małej grupy potencjalnych trójkątów do testu przeciw. W tym momencie do wykonania testów używane są określone algorytmy, tak jak w przypadku, gdyby dwa prostokąty zachodziły na siebie. Na przykład możesz określić, czy i gdzie promień uderza w trójkąt .