首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

何时使用Binary Space Partitioning,Quadtree,Octree?

Binary Space Partitioning, Quadtree, 和 Octree 都是在三维空间数据结构中常用的技术,它们各自都有自己的适用场景和优势。

Binary Space Partitioning (BSP)是最早的一种空间数据结构,它的基本思想是将二维平面上的所有点和物体进行栅格化,然后根据栅格中的点之间的关系来构造出数据结构。它的优点是可以保证在遍历每一个点时,最多只需要遍历两次,而且对于碰撞检测等操作也非常适用,但是缺点是对于复杂的三维物体和多边形不适用。

Quadtree 和 Octree 是 BST 技术的延伸,它们都是将三维空间进行网格化的数据结构,但是它们的方式不同。Quadtree 是一个四叉树,它将每个维度都分成四个部分,然后将每个部分都存储在一个节点中。对于每个节点,它只存储其子节点的数据,这种方式可以有效减少空间浪费和存储消耗。Octree 是一个八叉树,它将每个维度都分成八部分,然后将每个部分都存储在一个节点中。相比 Quadtree,Octree 对于物体的包围盒和内部结构的处理更加精细,因此也可以更好地处理碰撞检测等操作。

总的来说,BSP 适用于处理简单三维物体的数据结构,Quadtree 和 Octree 适用于处理复杂场景的数据结构。如果需要处理复杂的场景,那么一般都会优先选择 Octree,因为它可以更好地处理物体的内部结构和碰撞检测等操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【算法】四叉树并集

给你两个四叉树,quadTree1 和 quadTree2。其中 quadTree1 表示一个 n * n 二进制矩阵,而 quadTree2 表示另一个 n * n 二进制矩阵。...使用适当的子网格递归每个子节点。 四叉树格式: 输出为使用层序遍历后四叉树的序列化形式,其中 null 表示路径终止符,其下面不存在节点。 它与二叉树的序列化非常相似。...对于这样的树的计算,很适合使用分治法[2]。 分:将两棵树当前节点的四个子节点拆分来。...quadTree1.TopLeft = intersect(quadTree1.TopLeft, quadTree2.TopLeft) quadTree1.TopRight = intersect(quadTree1...内存消耗:6.5 MB , 在所有 Go 提交中击败了 50.00% 的用户 引用 [1] 四叉树交集: https://leetcode.cn/problems/logical-or-of-two-binary-grids-represented-as-quad-trees

46510
  • Elasticsearch 在地理信息空间索引的探索和演进

    Region quadtree The region quadtree represents a partition of space in two dimensions by decomposing...refinement is desired) is sensitive to and dependent on the spatial distribution of interesting areas in the space...下面这个图可以非常形象展示Quadtree的区间划分过程。ES 2.2是如何使用Quadtree来实现geo_distance查询呢?...通常我们使用一种数据结构,是先基于该数据结构存储数据,然后查询这个数据结构。ES这里使用Quadtree的做法非常巧妙:存储的时候没有感觉用到Quadtree,查询时却用其查询方式。...在面对数值查询区间查询的问题上,大体分为两个层次: 【优化内存查询】:BST(binary-search-tree) > Self-balanced BST > kd-tree。

    1.5K30

    CVPR 2020最佳学生论文分享回顾:通过二叉空间分割(BSP)生成紧凑3D网格

    加拿大西蒙弗雷泽大学陈之钦(Zhiqin Chen )等人的「BSP-Net」相关研究获得了最佳学生论文奖,他们的论文题目是《BSP-Net: Generating Compact Meshes via Binary...Space Partitioning》。...为了克服这些困难,该研究在 Binary Space Partitioning(BSP,计算机图形学中的经典空间数据结构)的启发下探讨了促进 3D 学习的方法。 ?...之所以避免使用 C^*,是因为在 TensorFlow 1 中的算子实现内存不够高效。 为了促进学习,研究者通过使用(加权)求和来将梯度分配给所有的 convex: ?...此外,研究者还展示了使用 overlap 损失的效果。注意,在可视化时,使用了不同的颜色来表示不同的 convex。

    84530

    量子计算-P1.Ising Model与QUBO

    QUBO: 二次无约束二元优化(Quadratic unconstrained binary optimization,QUBO),也称为无约束二元二次规划(unconstrained binary quadratic...其表达式为: Xi属于一个二值变量(0,1); qij属于实数,为参数,是一个上三角矩阵 QUBO问题是用于最小化fQ,通过来寻找Xi的组合 可以使用QUBO解决的问题: 下面列出了112个优化问题可以使用...(参考文献3) Number Partitioning (NP) Maximum Cut (MC) Minimum Vertex Cover (MVC) Set Packing (SP) Set Partitioning...Decisional Clique Problem Maximum Clique Problem Binary Integer Linear Programming Exact Cover 3SAT...GloverF_KochenbergerG.pdf List of QUBO formulations:https://blog.xa0.de/post/List-of-QUBO-formulations/ QUBO教学与使用教程

    3.9K31

    ORB-SLAM3 细读单目初始化过程(上)

    四叉树广泛应用于图像处理、空间数据索引、2D中的快速碰撞检测、存储稀疏数据等,而八叉树(Octree)主要应用于3D图形处理。这里可能会有歧义,代码中明明是Octree,不是八叉树吗?...QuadTree四叉树顾名思义就是树状的数据结构,其每个节点有四个孩子节点,可将二维平面递归分割子区域。...QuadTree常用于空间数据库索引,3D的椎体可见区域裁剪,甚至图片分析处理,我们今天介绍的是QuadTree最常被游戏领域使用到的碰撞检测。...注意:提取特征点的时候,使用的是清晰的原图像。这里计算描述子的时候,为了避免图像噪声的影响,使用了高斯模糊。 从数学的角度来看,高斯模糊的处理过程就是图像与其正态分布做卷积。...在代码中,使用的是OpenCV的GaussianBlur函数。

    1.3K10

    7 Papers & Radios | CVPR 2020获奖论文;知识蒸馏综述

    Probably Symmetric Deformable 3D Objects from Images in the Wild BSP-Net: Generating Compact Meshes via Binary...Space Partitioning Generative Pretraining from Pixels ActBERT: Learning Global-Local Video-Text Representations...该模型在训练过程中仅利用重建损失,未使用任何外部监督。为了在不使用监督信号的前提下将这些组件分解开,研究人员利用了很多物体类别所具备的属性——对称结构。...论文 4:BSP-Net: Generating Compact Meshes via Binary Space Partitioning 作者:Zhiqin Chen、Andrea Tagliasacchi...为了克服这些挑战,来自西蒙弗雷泽大学和谷歌研究院的研究者受计算机图形学中经典空间数据结构 Binary Space Partitioning(BSP)的启发,来促进 3D 学习。

    79940

    ORB-SLAM3 细读单目初始化过程(上)

    四叉树广泛应用于图像处理、空间数据索引、2D中的快速碰撞检测、存储稀疏数据等,而八叉树(Octree)主要应用于3D图形处理。这里可能会有歧义,代码中明明是Octree,不是八叉树吗?...QuadTree四叉树顾名思义就是树状的数据结构,其每个节点有四个孩子节点,可将二维平面递归分割子区域。...QuadTree常用于空间数据库索引,3D的椎体可见区域裁剪,甚至图片分析处理,我们今天介绍的是QuadTree最常被游戏领域使用到的碰撞检测。...注意:提取特征点的时候,使用的是清晰的原图像。这里计算描述子的时候,为了避免图像噪声的影响,使用了高斯模糊。 从数学的角度来看,高斯模糊的处理过程就是图像与其正态分布做卷积。...在代码中,使用的是OpenCV的GaussianBlur函数。

    1.5K40
    领券