我见过创建八叉树的代码,在其中添加和删除数据,但是如何真正构建八叉树呢?有没有3d体素软件可以保存到某种类型的数组中,然后可以转换为八叉树?或者你可以直接保存到一个八叉树?
发布于 2012-02-28 17:59:03
取决于您的实现-
如果你使用八叉树来细分空间,那么通常你会在其中抛出一堆V3s,一旦一个节点中有超过一定数量的点,你就会细分并重新分布它们。
如果你正在寻找一种方法来存储我的世界风格的体素,那么你将细分,直到你的体素大小达到1:1,并将你的数据存储在叶节点中。
数据从何而来取决于你-八叉树是一种存储、操作和搜索数据的方式,而不是一种文件格式。
发布于 2013-12-16 17:56:52
八叉树中的每个节点都有一个点。这些节点被分解为(您猜对了)八个子节点。这些节点依次包含每个,一个点。
通常,你不会将所有的顶点添加到一个八叉树中,除非你正在做一些不好的碰撞检测,其中每个顶点都很重要……这并不是说你不能让它变得更快,但它仍然比较少节点数给出的近似值要慢。(几乎所有情况都是如此,近似更快)。
同样,如果你正在进行高质量的渲染,八叉树可能应该有和你拥有的点一样多的节点。
现在来回答这个问题:
1. As you insert these points, the data will move further down into leaf nodes that more closely encapsulate your model.
2. Also, as you subdivide the bounding box is halved for each subsequent node down.
无论如何,我希望我已经回答了你的问题。
https://stackoverflow.com/questions/7310169
复制相似问题