(Ich habe diese Frage in zwei Teile geteilt. Für 2D siehe: 2D-Middleware zur Kollisionserkennung )
Gibt es empfehlenswerte Middleware für die 3D-Kollisionserkennung?
Ich glaube, ich habe gehört, dass Bullet eine ziemlich gute 3D-Kollisionserkennung hat, die ohne die Physik-Engine verwendet werden kann. Ich würde gerne hören, ob Leute Erfahrungen mit Bullet oder anderen Bibliotheken für die 3D-Kollisionserkennung haben.
collision-detection
3d
Pekuja
quelle
quelle
Antworten:
Wenn Sie nur eine Kollisionserkennung und keine vollständige Physik-Engine wünschen, sollten Sie sich OPCODE - http://www.codercorner.com/Opcode.htm ansehen (obwohl es jetzt etwas alt ist, gibt es möglicherweise neuere / Bessere Dinge da draußen?)
quelle
Bullet verfügt über eine sehr gut funktionierende Kollisionspipeline. Sie unterstützen verschiedene Broadphasen (Sweep n Prune, Hash-Broadphase, 3-Achsen-Sweep usw.) und haben eine Narrowphase mit optimierten bv-Bäumen. Ich habe über ein Jahr lang professionell mit Bullet gearbeitet und obwohl ihre Leistung nicht so gut ist wie die von Havok (mit der ich über zwei Jahre gearbeitet habe), ist sie kostenlos und der Quellcode wird häufig gepflegt und verbessert.
Es sollte ziemlich einfach sein, in ihren Quellcode zu schauen, um herauszufinden, wie man nur ihre Kollisionserkennung verwendet.
PhysX hat auch ein Kollisionserkennungsnetzwerk, aber ich habe es nicht genau untersucht. Havok ist eine Lösung, die viel Geld kostet, und ich glaube, niemand kann es sich leisten, seinen Quellcode abzurufen, es sei denn, Sie sind ein professioneller Entwickler. Sie haben frei zu verwendende Bibliotheken, aber dann können Sie sie nicht ändern.
quelle
Open Dynamics Engine ist eine weitere beliebte Open-Source-Middleware-Lösung für Physik und Kollision.
http://www.ode.org/
PhysX ist eine weitere beliebte Kollisions- / Physik-Middleware von NVIDIA. Binär verfügbar.
http://developer.nvidia.com/object/physx.html
Last but not least ist Havok der Goldstandard für Kollision / Physik. Binär verfügbar.
http://www.havok.com/
quelle