Gibt es robuste performante Bibliotheken zum Indizieren von Objekten?
Objekte hätten selbst Grenzen, anstatt durch Punkte dargestellt zu werden. und ein Objekt könnte sich daher in mehr als einem Fach befinden, wenn der Index Dinge in Partitionen fester Größe unterteilt.
Es würde das Ausmerzen von Kegelstumpf und das Besuchen von Objekten, die von einem Strahl getroffen wurden, sowie die Suche nach Nachbarschaften erfordern.
Ich kann viele Artikel finden, die die Mathematik für die Bestandteile zeigen, oft als Algebra und nicht als einfaches C, aber nichts, was alles zusammenfügt (außer vielleicht Ogre, obwohl PyOrge anscheinend den Octree nicht verfügbar macht ). Sicherlich müssen Hobby-Spielehersteller nicht alle ihre eigenen spartialen Indizes erstellen?
(Ich setze mich hin und schreibe meine eigene Kugel-Kugel, Kugel-Strahl, Strahl-Aabb, Kegel-Aabb, Kegel-Fustrum, Aabb-Fustrum und Octree-Implementierung; sicherlich gibt es einen besseren Weg, dh jemand hat dies bereits getan und a nettes Paket?!?!)
(Python oder C / C ++ mit Bindungen bevorzugt)
Um fair zu sein, wurde der verknüpfte Python Octree im Jahr 2006 veröffentlicht, sodass Python-Ogre die Octree-Klasse möglicherweise bereits verfügbar gemacht hat.
Wenn ich jedoch die Ogre-Quellen durchschaue, sehe ich zwei Octree-Implementierungen: eine in
Plugins/OctreeSceneManager/OgreOctree.h
und eine inPlugins/OctreeZone/OgreOctreeZoneOctree.h
.Wenn Sie mich auf den zeigen, den Sie benötigen, werde ich ihn auf meine Aufgabenliste für meinen eigenen handgeschriebenen Python-Wrapper setzen (er ist auf bitbucket verfügbar und in meinem Profil verlinkt).
Wie auch immer - Viel Glück. : D.
quelle
Ich habe hier Code für eine Python-Octree-Implementierung gefunden , indem ich einfach 'Octree-Python' gegoogelt habe. ; D.
Es ist nicht bibliotheksabhängig (obwohl ursprünglich für PyOgre geschrieben) und wird gut kommentiert.
quelle
Nachdem ich einige der oben genannten Pakete erfolglos ausprobiert hatte, fand ich RTree , einen Wrapper um libspatialindex .
quelle