Aber wie erkennt man Kollisionen bei Formen aus kleinen Dreiecken?
Indem ich es nicht tue.
Die Kollisionserkennung gegen eine beliebige Dreiecksammlung (oder noch schlimmer zwischen zwei Sammlungen beliebiger Dreiecke) ist unerschwinglich teuer.
Stattdessen führen wir die Erfassung von Sammlungen in der Regel hierarchisch durch und beginnen zunächst mit extrem groben, einfachen Formen (wie Kästchen oder Kugeln), die dem zugrunde liegenden Objekt (schlecht) nahe kommen.
Dies ermöglicht es uns, die Mehrheit der möglichen Kollisionen schnell als "nicht aufgetreten" zurückzuweisen, was der übliche Fall ist. In dem Fall, in dem eine solche grobe Prüfung bestanden wird, weist dies auf eine mögliche tatsächliche Kollision hin, und wir führen die Prüfung anhand einer detaillierteren Annäherung der zugrunde liegenden Form durch (z. B. einer aus mehreren eng anliegenden Kapselformen oder vielen ausgerichteten Begrenzungsrahmen).
Im Wesentlichen beginnt die Kollisionserkennung mit groben Tests und wird im Verlauf dieser Tests immer detaillierter dargestellt. Dieses von Shiro in einem Kommentar zu Alexandres Antwort bereitgestellte Bild zeigt, wie ein komplexes Modell (ein Mensch) durch eine Reihe einfacherer Formen dargestellt werden kann:
Selten eigentlich wir brauchen Kollision auf der individuellen Ebene Dreieck durchzuführen, und wenn wir das tun haben wir in der Regel die gröberen Methoden verwendet , um eine sehr kleine Menge von potentiellen Dreiecke zu bohren , bis zu Test gegen. An diesem Punkt werden bestimmte Algorithmen verwendet, um die Tests durchzuführen, genau wie Sie testen würden, ob sich zwei Rechtecke überlappen. Beispielsweise können Sie bestimmen, ob und wo ein Strahl ein Dreieck trifft .