Letztendlich denke ich, dass die Antwort auf Ihre Frage von den Anforderungen Ihrer speziellen Anwendung abhängt, da es keine einheitliche Lösung gibt. Obwohl es im Internet eine Reihe anständiger Ressourcen gibt, sparen Sie viel Zeit und Frustration, wenn Sie sich die Echtzeit-Kollisionserkennung von Christer Ericson zunutze machen , die beispielsweise eine Vielzahl von Techniken und Algorithmen ausführlich beschreibt C ++ Code.
Es half mir, kleine Schritte zu unternehmen, bevor ich versuchte, ein großartiges System aufzubauen. Schreiben einer Funktion, um zu bestimmen, ob ein Punkt in einer Ebene liegt, ob ein Punkt in einem Dreieck liegt, ob ein Strahl in einem Dreieck liegt usw. Fahren Sie dann mit statischen Tests verschiedener konvexer Körper fort: AABB vs. Triangle usw. Mit Zeit Dinge, die auf den ersten Blick undurchdringlich schienen (verzeihen Sie das Wortspiel), wurden weniger entmutigend. Hier ist eine Auflistung einer guten Anzahl von Tests mit Beispielcode:
http://www.realtimerendering.com/intersections.html
In der Zwischenzeit, da ich weiß, dass nicht jeder nach Belieben 70-80 $ für ein Buch ausgeben kann, sind hier einige Begriffe, die Sie vielleicht prüfen möchten:
- Raumaufteilung, Octrees, Quadtrees, BSP-Bäume
- BIH Bäume
- Bounding-Volumes und Bounding-Volume-Hierarchien
- Diskrete oder kontinuierliche Kollisionserkennung
- Theorem der Trennachse
- GJK-Algorithmus