您的问题没有明确答案。这完全取决于数据的组织方式。
要记住的事情:
四叉树最适合大多数二维数据,例如导航系统中的地图渲染。在这种情况下,它比八叉树更快,因为它可以更好地适应几何形状并保持节点结构较小。
如果数据是三维的,则八进制和BVH(边界卷层次结构)将受益。如果您的几何实体聚集在3D空间中,则效果也很好。(请参阅Octree vs BVH)(从原版的)
八叉树和四叉树的好处是您可以随时停止生成树。如果要使用图形加速器来渲染图形,则它允许您仅在对象级别上生成树,然后通过一次绘画调用将每个对象发送到图形API。这比发送单个三角形要好得多(如果您完全使用BSP-Tree,则必须执行此操作)。
BSP树确实是一个特例。它们在2D和3D中效果很好,但是生成好的BSP树本身就是一种艺术形式。BSP树的缺点是您可能必须将几何拆分成较小的碎片。这会增加数据集的整体多边形数量。它们非常适合渲染,但是它们对于碰撞检测和光线跟踪则更好。
BSP树的一个不错的特性是,它们可以将多边形汤分解为可以从任何摄像机位置完美地从头到尾(反之亦然)呈现的结构,而无需进行实际排序。从每个角度来看的顺序是数据结构的一部分,并且是在BSP-Tree编译期间完成的。
顺便说一下,这就是十年前它们如此受欢迎的原因。Quake之所以使用它们,是因为它允许图形引擎/软件光栅化器不使用昂贵的z缓冲区。
提到的所有树木都是树木家族。有松散的八叉树,kd树混合树以及许多其他相关结构。