Le principal avantage d'un arbre quadruple est qu'il vous permet d'éliminer très rapidement des groupes entiers de godets.
Par exemple, supposons que j'ai un arbre quadruple à six niveaux. À son niveau le plus bas, ce sont des boîtes 32x32; 1024 cases comprenant ce niveau inférieur, le plus détaillé. À titre de comparaison, nous considérerons également un "hachage spatial" - une grille plate qui contient également 32x32 cases, 1024 cases au total. (L'arbre quadruple a plus de 1024 boîtes au total, car il contient également des boîtes plus grandes à ses niveaux supérieurs)
Supposons qu'il n'y ait pas d'objets collables dans le système - toutes les boîtes de notre arbre quadruple et notre grille plate sont complètement vides.
Si vous testez les collisions de quelque chose qui est assez grand pour que sa boîte englobante recoupe toutes ces boîtes et que vous utilisez une grille plate, vous devez vérifier chacune de ces 1024 boîtes pour voir s'il y a même quelque chose dans leur.
Mais si vous utilisez un arbre quad imbriqué, le niveau le plus élevé peut vous dire qu'il n'y a pas d'autres objets dans le système, et donc vous n'avez qu'à regarder cette case pour savoir que vous n'allez pas trouver de collisions plus profondément dans l'arborescence - vous pouvez arrêter immédiatement les tests.
De même, si les objets n'existent que dans certaines régions de l'arbre quadruple, l'arbre quadruple guidera naturellement votre recherche à travers uniquement les cases potentiellement pertinentes, tandis que la grille vous oblige à cocher chaque case intersectée, car vous n'avez aucun moyen de savoir à l'avance quels carrés de la grille contiendront des objets. Si une grande partie de votre arbre quadruple est vide et que vous effectuez des requêtes volumineuses et compliquées (par exemple, d'énormes troncs de caméra au lieu de petits rectangles simples), vous constaterez peut-être que vous parcourez beaucoup moins de cases au total si teste quelque chose en utilisant une structure arborescente plutôt qu'une grille plate. Et cela peut faire une grande différence.
Tout cela ne signifie pas qu'une arborescence est toujours le bon choix, bien sûr. Les grilles plates sont idéales pour la situation que vous avez dans votre exemple - des nuages denses d'objets répartis à peu près uniformément partout dans le monde, et nous faisons des tests de collision simples et peu coûteux. Absolument, une grille est probablement l'approche optimale dans ce cas!