【发布时间】:2020-05-18 13:14:55
【问题描述】:
我想使用八叉树来节省空间,因为我有一堆包含大量相同数据的 3d 数组(体素块,其中块只是 uint16)。我见过用于光线遍历或空间分区的八叉树实现,但它们都包含八叉树中心和节点大小,我不需要任何这些,我只想要压缩数据存储。我目前正在研究 Morton 代码,但我什至不确定这是否是正确的做法。
【问题讨论】:
-
在内存中,对于磁盘,我计划将多个块组合成“大块”并压缩它。
-
对于八叉树的顶层,您存储了 8 个元素; each 要么是一个值(如果整个八分圆都被那个值占据)或者是指向另外 8 个元素的指针,每个要么是一个值(如果整个八分圆都被那个值占据)或者是指向另外 8 个元素的指针,.. . 好吧,你明白我的意思。八叉树 是 用于 3d 值数组的压缩数据存储
-
我明白,我不知道如何制作接口来访问像 3d 数组这样的八叉树节点。 value = get(x, y, z),返回离叶节点最近的值。