我见过创建八叉树的代码,添加和删除它们的数据,但是如何实际构建八叉树?是否有3d体素软件将保存到某种类型的数组,然后可以转换为八叉树?或者你可以直接保存到八叉树?
答案 0 :(得分:0)
取决于您的实施 -
如果你使用oct-tree来细分空间,那么你通常会在它上面抛出一堆V3,一旦一个节点有超过一定数量的点,你就细分并重新分配它们。
如果您正在寻找存储我的世界风格体素的方法,那么您将细分直到您的体素大小达到1:1,并将您的数据存储在叶节点中。
数据的来源取决于您 - 八进制是一种存储,操作和搜索数据的方式,而不是文件格式。
答案 1 :(得分:0)
八叉树中的每个节点都有一个点。这些节点被分解为(你猜对了)八个子节点。这些节点又包含每个单个点。
一般情况下,你不要将你的顶点的所有添加到八叉树,除非你正在进行一些不明智的碰撞检测,其中每个顶点都计数...不是你不能做到的那么快,但它仍然比较少数量的节点给出的近似慢。 (对于几乎所有事情都是如此,近似更快)。
同样,如果您正在以高质量的八叉树进行渲染,那么应该拥有与点数一样多的节点。
现在回答:
创建一个带有边界框的根节点,该边界框将它从中心包围起来。
插入每个点。这应该在相关方向上细分八叉树。
无论如何,我希望我回答你的问题。