0
我正在爲我的三維地形創建四叉樹,因爲我只需要擔心Z軸和X軸,而我在創建樹後,如何真正地遍歷下來會遇到一些麻煩。如何遍歷我的四叉樹以獲得最底層的節點(3D,C++,DX11)
我創建了樹,它們作爲QuadNode對象存儲在我的QuadTree對象中。每個QuadNode表示四叉樹的「Quad」。它需要地形並計算出是否需要細分爲新節點,直到找到最底層的節點並且每個節點有足夠數量的頂點。
我已經在每個節點對象中存儲了一個頂點/索引緩衝區,但是隻有當它們到達最底層節點時,它們纔會被填充。所以我試圖獲得的緩衝區(讓緩衝區繪製)正好在樹的底部。
現在我可以很簡單地用一個基本樹來完成這個工作,它只有4個節點,但隨着樹變大,我感到困惑。這裏是展示
我存儲
- 多少級都在四叉樹(與搜索可能的幫助,像橫向到6級)的圖像
- 的總節點數
緩衝區存儲在最底部的節點中。有沒有人有一個例子函數或僞代碼,我將如何使一個函數遍歷樹給定一個特定的級別,它會給我這個級別的節點?還是有更好的方法?
工作在一個級別上的節點數量將是'4^n + 4 ^(n-1)+ 4 ^(n-2)'等等,直到n == 0。所以在第二級,你會有'4^2 + 4^1 + 4^0 = 21'。在3級你會有'21 + 4^3 = 85'。在4級時,你會有'85 + 4^4 = 341',等等。 –