【发布时间】:2013-08-01 09:21:38
【问题描述】:
我正在开发一种需要 3D“基于体素”引擎的工具。我的意思是它将涉及从网格中添加和删除多维数据集。为了管理这些多维数据集,我需要一个允许快速插入和删除的数据结构。我在 k-d 树和八叉树中看到的问题是,由于这些操作,它们似乎经常需要重新创建(或至少重新平衡)。
在我加入之前,我想就解决此问题的最佳方法获得意见。
更多细节:
- x,y,z 位置在整数空间中
- 需要对实时应用程序足够高效
- 对使用的多维数据集的数量没有硬性限制。 很可能这个数字通常是无关紧要的 低(
我想最终的问题是,以能够处理频繁插入和删除的方式管理本质上是 3D 点数据的最佳方式是什么?
(不,我不是在制作 Minecraft)
【问题讨论】:
-
如果只需要插入和删除,使用简单的哈希表,以(x,y,z)为key。但我想在某些时候你也需要进行空间查询,对吧?
-
我现在不确定。我目前的需求实际上并不需要空间查询,但我可以看到它们在某些时候是必要的。为了简单起见,我可能会从哈希表开始,然后根据需要移动到八叉树。谢谢!
标签: data-structures 3d voxel