我見過創建八叉樹的代碼,添加和刪除它們的數據,但是如何實際構建八叉樹?有沒有3D體素軟件可以保存到某種可以轉換成八叉樹的數組中?或者你能直接保存到八叉樹嗎?你怎麼做一個八叉樹(對於體素)?
1
A
回答
0
您的實現依賴 -
如果您使用辛樹細分空間,那麼通常你會在它扔了一堆的的V3s,一旦一個節點具有比它一定的積分的更多,你細分,並重新分配他們。
如果您正在尋找一種方法來存儲我的世界風格體素,那麼您將細分,直到您達到1:1的體素大小,並將數據存儲在葉節點中。
數據來自哪裏取決於您 - 八叉樹是一種存儲,操作和搜索數據的方式,而不是文件格式。
0
八叉樹中的每個節點都有一個點。這些節點被分解成(你猜對了)八個孩子節點。這些節點又包含每個單個點。
一般情況下,你不加你的頂點所有到八叉樹,除非你正在做一些不敬虔的碰撞檢測,其中的每一個頂點計算......不,你不能讓它再快,但它仍然比由較少數量的節點給出的近似值慢。 (幾乎所有的情況都是如此,近似速度更快)。
同樣,如果你在做高質量的八進制渲染,應該可能有多少個節點。
現在到了答案:
創建邊框將其包圍從中央根節點。
插入每個點。這應該在相關的方向上細分八叉樹。
- 當您插入這些點時,數據將進一步向下移動到更密切地模擬您的模型的葉節點中。
- 此外,細分時,每個後續節點的邊界框減半。
- 如果你真的要保存它,你可以保存頂點(編號),然後讓你的程序寫下來節點之間的各種連接和頂點到磁盤上,在那裏他們將能夠在大致相同的時間從頭開始構建八叉樹。
無論如何,我希望我回答你的問題。
相關問題
- 1. 在八叉樹/四叉樹中定位體素的性能
- 2. 你怎麼一個元素
- 3. 做一個N叉樹
- 4. 你怎麼做一個網格
- 5. 如何製作八叉樹?
- 6. 迭代八叉樹遍歷
- 7. 你怎麼做一個硬編碼對象動態
- 8. Rails 3 - 多對多 - 你會怎麼做?
- 9. 你怎麼看到XCUIElement樹?
- 10. 重新排列四叉樹/八叉樹的數據
- 11. 你怎麼做多個內部聯接Linq到實體
- 12. 你怎麼做到這一點,當你按下一個鍵會發生什麼
- 13. 稀疏八叉樹的高效存儲?
- 14. 在八叉樹中合併葉子
- 15. 八叉樹實現的速度問題
- 16. 找到立方體和CSG對象之間的八叉樹細分的交集
- 17. Eclipse交叉編譯...我該怎麼做?
- 18. 我有一個JSON對象,現在我怎麼做一個div元素
- 19. 你怎麼做一個類時彈出按鈕被按下
- 20. 你怎麼做一個固定的,響應側邊欄?
- 21. 你怎麼在Android模擬器中做一個扔手勢
- 22. 駝鹿你怎麼對每一個輸入做出強制性的攻擊?
- 23. 在CSS中更改字體真棒大小。你怎麼做呢?
- 24. 級聯刪除實體框架4.你怎麼做?
- 25. 應該在每一幀都重建八叉樹嗎?
- 26. XML導入你會怎麼做?
- 27. 部署Django:你怎麼做到的?
- 28. GUI設計:你是怎麼做到的?
- 29. CSS背景 - 你會怎麼做?
- 30. asp.net mvc全球化。你怎麼做呢?