人們通常認為體素佔用大量儲存空間。讓我們比較一下平滑地形。高度圖與體素。高度圖:16 位元 8192x8192 = 128MB;體素:4x4x4 區塊 = uin64 = 8 位元組。我們需要 2048x2048 塊磚塊來覆蓋 8k^2 的地形表面 = 32MB。 SVO/DAG 上層增加 <10%
上述估計是樂觀的。如果地形崎嶇,大多數情況下我們最終會將兩塊磚塊疊放在一起。因此,我們總共有 64MB 的葉磚塊。 SVO/DAG 上層不會增加太多(因為我們使用了共用子指標)。總計不到 70MB。仍然很成功。
每個磚塊都有一個 uint64 體素遮罩(4x4x4)和一個 32 位元共用子資料指標(由於 4 位元組對齊,可以尋址 16GB 的體素資料)。標準磚塊為 12 位元組。葉磚塊只有 8 字節,它們沒有子資料指標(後綴不會影響 SIMD 一致性)。
有趣的實作是,八叉樹以樹級遞歸方式儲存位元。如果每級儲存 4x4x4 個區塊,則每級可獲得 2 位元精度。因此,8 級 = 16 位元高度精度。但高位由許多體素共享。
更正:我這裡說的是 4x4x4 樹,而不是 2x2x2 (八叉樹)。標準的八叉樹當然會將每個區域在每個軸上分成兩部分,從而為每個座標增加一位精確度。