Kollisionserkennung (algorithmische Geometrie)Als Kollisionserkennung oder Kollisionsabfrage (englisch Collision Detection) wird in der algorithmischen Geometrie das Erkennen des Berührens oder Überlappens zweier oder mehrerer geometrischer (starrer oder deformierbarer) Objekte im zwei- oder dreidimensionalen Raum verstanden. Einer Kollisionserkennung folgt die Kollisionsantwort oder Kollisionsbehandlung, wodurch eine Reaktion auf die Kollision eingeleitet wird. Kollisionserkennungsmethoden werden beispielsweise bei der Bildgenerierung von Animationsfilmen, in physikalischen Simulationen, bei Computerspielen, zur Pfadplanung in der Robotik oder bei Haptics eingesetzt. Dabei unterscheidet man Methoden zum exakten und zum approximativen Lösen von Kollisionsantworten. Kollisionserkennung in der StarrkörpersimulationBei der Starrkörpersimulation (englisch Rigid Body Simulation) können verschiedene Algorithmen zur Erkennung einer Kollision verwendet werden, wobei folgende Situationen unterschiedlich behandelt werden:
In einzelnen Fällen lohnt es sich, nicht-konvexe Polyeder in konvexe zu zerlegen und dadurch wiederum die Algorithmen zum Finden von Kollisionen zwischen konvexen Polyedern zu verwenden. In Szenarien, in denen sich große Mengen- oder sehr komplexe geometrische Figuren befinden, muss die Kollisionserkennung in zwei Phasen unterteilt werden:
Um die benötigte Rechenleistung während der Simulation weiterhin zu reduzieren, kann das Berechnen der Bounding Volumes und das Erstellen der hierarchischen Datenstruktur in eine Vorverarbeitungsphase (englisch Preprocessing) verlegt werden. Kollisionserkennung bei der Simulation deformierbarer KörperDie Simulation deformierbarer Körper wird des Öfteren unterteilt in Kollision zwischen zwei disjunkten Körpern und Selbstkollision. Dabei nimmt die Selbstkollision beispielsweise bei der Simulation von Textilien oder Haaren nahezu die Hälfte der Rechenleistung in Anspruch und ist somit sehr rechenintensiv. Bei manchen deformierbaren Körpern kann jedoch keine Selbstkollision vorkommen. Fluide gelten nicht als deformierbare Objekte und müssen bei einer Kollision mit einem starren oder deformierbaren Objekt gesondert betrachtet werden. Für deformierbare Objekte kann das Verwenden von hierarchischen Datenstrukturen sehr viel Rechenleistung in Anspruch nehmen. Darum werden oft nicht-hierarchische Datenstrukturen verwendet. Räumliche DimensionComputersimulation und -animation kann im 2D-Raum oder im 3D-Raum ablaufen. Die meisten Kollisionserkennungsmethoden, die für den dreidimensionalen Raum erstellt wurden, können zwar auch zur Lösung des zweidimensionalen Problems verwendet werden, was aber im Allgemeinen nicht zu einer ebenso effizienten Lösung führen muss. |