我已經獲得了三維體素數據,並且我想重新打包以提高內存效率和快速訪問。數據以常規八叉樹生成,每個單元格一個整數值。不幸的是,數據並不稀疏,但應該連接具有相同值的單元。重新包裝體素數據以獲得高效存儲
Example for one slice:
[11122]
[11223]
[12222]
[44444]
我目前的想法是使用kD樹,最好是左平衡,但我不知道是否有一個有效的算法來生成這個。 我已經有了一些想法,但我希望這是一個已經建立的算法,或至少一個名字我可以谷歌的問題之一。
我已經獲得了三維體素數據,並且我想重新打包以提高內存效率和快速訪問。數據以常規八叉樹生成,每個單元格一個整數值。不幸的是,數據並不稀疏,但應該連接具有相同值的單元。重新包裝體素數據以獲得高效存儲
Example for one slice:
[11122]
[11223]
[12222]
[44444]
我目前的想法是使用kD樹,最好是左平衡,但我不知道是否有一個有效的算法來生成這個。 我已經有了一些想法,但我希望這是一個已經建立的算法,或至少一個名字我可以谷歌的問題之一。
另一個鏈接:http://www.openvdb.org/。爲什麼我在問這個問題後才發現這個問題?這就像在超市裏要求什麼東西,只是爲了發現你站在旁邊。
我結束了做簡單的東西,因爲我需要一個解決方案:我的體素體積轉換成2D平面的堆疊,每個平面中,保存在該點值變化到下一個更高的境界。這樣,體素數據只能垂直壓縮,但現在看起來「足夠好」。如果我有空閒時間,我會爲其他數據結構的數字(空間需求與性能)緊密結合。