【问题标题】:Octree with 3d array like interface具有类似界面的 3d 数组的八叉树
【发布时间】:2020-05-18 13:14:55
【问题描述】:

我想使用八叉树来节省空间,因为我有一堆包含大量相同数据的 3d 数组(体素块,其中块只是 uint16)。我见过用于光线遍历或空间分区的八叉树实现,但它们都包含八叉树中心和节点大小,我不需要任何这些,我只想要压缩数据存储。我目前正在研究 Morton 代码,但我什至不确定这是否是正确的做法。

【问题讨论】:

  • 在内存中,对于磁盘,我计划将多个块组合成“大块”并压缩它。
  • 对于八叉树的顶层,您存储了 8 个元素; each 要么是一个值(如果整个八分圆都被那个值占据)或者是指向另外 8 个元素的指针,每个要么是一个值(如果整个八分圆都被那个值占据)或者是指向另外 8 个元素的指针,.. . 好吧,你明白我的意思。八叉树 用于 3d 值数组的压缩数据存储
  • 我明白,我不知道如何制作接口来访问像 3d 数组这样的八叉树节点。 value = get(x, y, z),返回离叶节点最近的值。

标签: c++ arrays voxel octree


【解决方案1】:

我做了我想要的,大小可以从分割的数量中计算出来。 https://github.com/markusgod/cubic-octree

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多