Der Hauptvorteil eines Quad-Baums besteht darin, dass Sie ganze Gruppen von Eimern sehr schnell aus der Betrachtung entfernen können.
Nehmen wir zum Beispiel an, ich habe einen Quad-Baum mit sechs Ebenen. Auf der niedrigsten Ebene sind das 32x32-Boxen. 1024 Kisten mit dieser untersten, detailliertesten Ebene. Zum Vergleich betrachten wir auch einen "räumlichen Hash" - ein flaches Gitter, das auch 32x32-Boxen enthält, insgesamt 1024 Boxen. (Der Quad-Baum hat insgesamt mehr als 1024 Boxen, da er auf seinen höheren Ebenen auch größere Boxen enthält.)
Nehmen wir an, dass das System keine kollidierbaren Objekte enthält - alle Kästchen unseres Quad-Baums und unseres flachen Gitters sind vollständig leer.
Wenn Sie die Kollisionen von etwas testen, das groß genug ist, dass sein Begrenzungsrahmen alle diese Kästchen schneidet, und Sie ein flaches Raster verwenden, müssen Sie jedes einzelne dieser 1024 Kästchen überprüfen, um festzustellen, ob überhaupt etwas darin ist Sie.
Wenn Sie jedoch einen verschachtelten Quad-Baum verwenden, kann Ihnen die oberste Ebene mitteilen, dass sich keine anderen Objekte im System befinden. Sie müssen sich also nur diese einzelne Box ansehen, um zu wissen, dass Sie keine Kollisionen finden tiefer im Baum - Sie können den Test sofort beenden.
Wenn die Objekte nur in bestimmten Regionen des Quad-Baums vorhanden sind, führt der Quad-Baum Ihre Suche natürlich nur durch potenziell relevante Kästchen, während Sie im Raster jedes einzelne geschnittene Kästchen überprüfen müssen, da Sie keine Möglichkeit haben, dies im Voraus zu wissen Welche Gitterquadrate enthalten Objekte? Wenn ein Großteil Ihres Quad-Baums leer ist und Sie große, komplizierte Abfragen durchführen (z. B. große Kamerastöße anstelle kleiner, einfacher Rechtecke), werden Sie möglicherweise feststellen, dass Sie insgesamt weit weniger Felder durchlaufen, wenn Sie dies tun Tests gegen etwas mit einer Baumstruktur anstelle eines flachen Gitters. Und das kann einen großen Unterschied machen.
All dies bedeutet natürlich nicht, dass eine Baumstruktur immer die richtige Wahl ist. Flache Gitter sind ideal für die Situation, die Sie in Ihrem Beispiel haben - dichte Wolken von Objekten verteilen sich ziemlich gleichmäßig überall auf der Welt, und wir führen einfache, kostengünstige Kollisionstests durch. In diesem Fall ist ein Raster wahrscheinlich der optimale Ansatz!