我已经获得了三维体素数据,并且我想重新打包以提高内存效率和快速访问。数据以常规八叉树生成,每个单元格一个整数值。不幸的是,数据并不稀疏,但应该连接具有相同值的单元。重新包装体素数据以获得高效存储
Example for one slice:
[11122]
[11223]
[12222]
[44444]
我目前的想法是使用kD树,最好是左平衡,但我不知道是否有一个有效的算法来生成这个。 我已经有了一些想法,但我希望这是一个已经建立的算法,或至少一个名字我可以谷歌的问题之一。
我已经获得了三维体素数据,并且我想重新打包以提高内存效率和快速访问。数据以常规八叉树生成,每个单元格一个整数值。不幸的是,数据并不稀疏,但应该连接具有相同值的单元。重新包装体素数据以获得高效存储
Example for one slice:
[11122]
[11223]
[12222]
[44444]
我目前的想法是使用kD树,最好是左平衡,但我不知道是否有一个有效的算法来生成这个。 我已经有了一些想法,但我希望这是一个已经建立的算法,或至少一个名字我可以谷歌的问题之一。
另一个链接:http://www.openvdb.org/。为什么我在问这个问题后才发现这个问题?这就像在超市里要求什么东西,只是为了发现你站在旁边。
我结束了做简单的东西,因为我需要一个解决方案:我的体素体积转换成2D平面的堆叠,每个平面中,保存在该点值变化到下一个更高的境界。这样,体素数据只能垂直压缩,但现在看起来“足够好”。如果我有空闲时间,我会为其他数据结构的数字(空间需求与性能)紧密结合。