2014-12-19 59 views
0

我剛剛創建了3D景觀生成器,並使一些單位與地形正確碰撞。地形坡度和路徑查找算法

現在我遇到了一個問題:如果我想實現路徑查找算法,如何檢測單元是否因高斜率而不能走路?

生成一個「斜坡矩陣圖」以及地形生成並用它來計算從一個點到另一個點的路徑是一個好主意嗎?

非常感謝預先

+0

如果你已經計算過閃電的法線,我相信你可以用它們來快速計算斜率。 – SlySherZ

+0

@SlySherZ是最好的方法嗎?我想我可以生成一個特殊的矩陣地圖,模型可以走路,忽略顯示的地圖,然後在安全的情況下執行路徑查找,無需每次計算斜率。 我的想法錯了嗎?謝謝 – greenfox

+0

想法是不正確的,直到你測試它們。我沒有經驗,也沒有必要的信息來回答你的問題。如果內存不是問題,那麼這個矩陣絕對可以解決您的問題。但是,如果不首先確定替代方案是否有問題,我不會麻煩地執行這樣的事情。 – SlySherZ

回答

0

對於這種設置的我​​通常劃分地圖成離散的細胞(即,尋路節點)並且並行地存儲爲每個細胞的一組元數據。坡度是您想要存儲的常見坡度,但很可能隨着時間的推移,您將需要存儲其他信息。例如,您可能希望地形類型影響移動速度,從而影響移動的成本。我會建議在未來有更多數據的計劃。

我建議設置它,以便每個單元格都有一個相應的元數據索引。最初,它可能是每個單元格的一個元數據條目,但是一旦它有效,那麼您可以壓縮元數據並僅存儲唯一條目。根據您的世界的大小,您可能還想要在空間上分解元數據(即根據需要加載和卸載它的塊)。

一旦你在你的每個單元上設置了元數據設置和單個查找索引,你需要做的就是在尋路時檢索它。您可以使用它來包含/排除潛在的鄰居或修改成本。