Collision Trees

Die einzelnen Stufen der Kollisionserkennung

Visualierung des Sphere-trees anhand eines Beispiels: Bei diesem Modell wurden 6 Ebenen erstellt.

 

In Rahmen der Entwicklung der Spherical-Engine habe ich eine Lösung für objektunabhängige Kollisionserkennung entwickelt. Die Anforderung war, beliebige 3D Objekte zu laden und beim Ladevorgang mit Kollisionserkennung auszustatten.

Neben verschiedenen Ansätzen, entschieden David Kronenberger und ich uns dazu, die Objekte durch Kugeln zu approximieren, da dann die Auflösung der Kollisionen recht einfach ist. Um Rechenaufwand zu sparen und die Objekte möglichst genau zu approximieren, verwenden wir einen Sphere-Tree und testen erst auf der gröbsten Ebene, ob die Objekte überhaupt kollidieren können. Dann wird mit der nächsten Ebene fortgefahren bis entschieden werden kann, dass die Objekte kollidieren. Beim Laden der Objekte kann dabei angegeben werden, wie viele Ebenen für die Kollision erstellt werden sollen. In der Demo dazu, wurden die Kugeln visualisiert um die Korrektheit der Kollisionsüberprüfung zu testen. Der Sphere-tree wird bisher nur auf basis von Octrees erstellt. Dies ist zwar keine optimale Lösung, aber sie ist einfach und vor allem schnell.