由於專案有複雜超大地圖(unity單位15000*15000)的需求,在Recast資料建立上遇到了一些問題…
- 整塊大地建立不出來,發生了以下的錯誤…
if (maxVertices >= 0xfffe)
{
ctx->log(RC_LOG_ERROR, "rcBuildPolyMesh: Too many vertices %d.", maxVertices);
return false;
} - 就算是分了區塊,但因為Recast底層建立的函式,無法並行建立,所以造成了建立時間過久的狀況(超過一天以上)
- 自行實作一個建立console工具程式,並用批次檔來運行多個執行檔,來達到並行建立區塊的目的。
- 最後將相關的區塊移到unity裡來進行彙整,並輸出跨區域尋路的整塊地圖。
利用外包計算(其實只是做格子的拜訪)的演算法,來算出各區塊的包覆範圍,分割地圖區塊:
後記:實測建立時間可以節省2/3以上,目前覺得還要回來unity進行合併,多了一個步驟,不知道之後有沒辦法分塊,合併及路線計算能在一個步驟就完成,以下是相關的視頻:
沒有留言:
張貼留言