我见过创建八叉树的代码,添加和删除它们的数据,但是如何实际构建八叉树?有没有3D体素软件可以保存到某种可以转换成八叉树的数组中?或者你能直接保存到八叉树吗?你怎么做一个八叉树(对于体素)?
1
A
回答
0
您的实现依赖 -
如果您使用辛树细分空间,那么通常你会在它扔了一堆的的V3s,一旦一个节点具有比它一定的积分的更多,你细分,并重新分配他们。
如果您正在寻找一种方法来存储我的世界风格体素,那么您将细分,直到您达到1:1的体素大小,并将数据存储在叶节点中。
数据来自哪里取决于您 - 八叉树是一种存储,操作和搜索数据的方式,而不是文件格式。
0
八叉树中的每个节点都有一个点。这些节点被分解成(你猜对了)八个孩子节点。这些节点又包含每个单个点。
一般情况下,你不加你的顶点所有到八叉树,除非你正在做一些不敬虔的碰撞检测,其中的每一个顶点计算......不,你不能让它再快,但它仍然比由较少数量的节点给出的近似值慢。 (几乎所有的情况都是如此,近似速度更快)。
同样,如果你在做高质量的八进制渲染,应该可能有多少个节点。
现在到了答案:
创建边框将其包围从中央根节点。
插入每个点。这应该在相关的方向上细分八叉树。
- 当您插入这些点时,数据将进一步向下移动到更密切地模拟您的模型的叶节点中。
- 此外,细分时,每个后续节点的边界框减半。
- 如果你真的要保存它,你可以保存顶点(编号),然后让你的程序写下来节点之间的各种连接和顶点到磁盘上,在那里他们将能够在大致相同的时间从头开始构建八叉树。
无论如何,我希望我回答你的问题。
相关问题
- 1. 在八叉树/四叉树中定位体素的性能
- 2. 你怎么一个元素
- 3. 做一个N叉树
- 4. 你怎么做一个网格
- 5. 如何制作八叉树?
- 6. 迭代八叉树遍历
- 7. 你怎么做一个硬编码对象动态
- 8. Rails 3 - 多对多 - 你会怎么做?
- 9. 你怎么看到XCUIElement树?
- 10. 重新排列四叉树/八叉树的数据
- 11. 你怎么做多个内部联接Linq到实体
- 12. 你怎么做到这一点,当你按下一个键会发生什么
- 13. 稀疏八叉树的高效存储?
- 14. 在八叉树中合并叶子
- 15. 八叉树实现的速度问题
- 16. 找到立方体和CSG对象之间的八叉树细分的交集
- 17. Eclipse交叉编译...我该怎么做?
- 18. 我有一个JSON对象,现在我怎么做一个div元素
- 19. 你怎么做一个类时弹出按钮被按下
- 20. 你怎么做一个固定的,响应侧边栏?
- 21. 你怎么在Android模拟器中做一个扔手势
- 22. 驼鹿你怎么对每一个输入做出强制性的攻击?
- 23. 在CSS中更改字体真棒大小。你怎么做呢?
- 24. 级联删除实体框架4.你怎么做?
- 25. 应该在每一帧都重建八叉树吗?
- 26. XML导入你会怎么做?
- 27. 部署Django:你怎么做到的?
- 28. GUI设计:你是怎么做到的?
- 29. CSS背景 - 你会怎么做?
- 30. asp.net mvc全球化。你怎么做呢?