於網格的阻擋,任意角度移動,實數座標
紅藍綠三組尋路,亮的路徑是平滑(縮短)後的。
(640米)²地圖:
近距離(空間距離7米,路徑長度18.8米):粗糙尋路0.011ms;平滑尋路0.038ms
對角尋路(空間距離690米,路徑長度772米):粗糙尋路0.071ms;平滑尋路0.653ms
20200525更新
通過重寫地圖預處理及其他內存優化,性能又提高了一倍
近距離(空間距離7米,路徑長度18.8→18.1米):
粗糙尋路0.011ms→0.004ms;平滑尋路0.038ms→0.013ms
對角長距離尋路(空間距離690米,路徑長度772米→768米):
粗糙尋路0.071ms→0.023ms;平滑尋路0.653ms→0.204ms
20200527更新,通過大過濾標誌位剪枝。 0.023ms→0.008ms;0.004ms→0.002ms
recast相同測試
單位 us微秒(百萬分之一秒)
方案 | 我的尋路(前三次) | Recast(前三次) |
---|---|---|
遠距離 粗糙解(大致可用路徑) | 28;6;6(大致可用路徑) | 156;141;141(幾乎不可用) |
遠距離 一次優化合計 | 55;40;40(效果約等於最終解) | |
遠距離 最終解 | 185;179;178 | 166;149;150 |
近距離 粗糙解 | 4;2;2(大致可用路徑) | 4;3;3(幾乎不可用) |
近距離 一次優化合計 | 7;4;4(約等於最終解) | |
近距離 最終解合計 | 11;11;10 | 5;4;4 |
同時recast的尋路結果更長,甚至出現繞路
2020-6-14更新:
統計性能時,考慮了cpu cache的影響,清除了cache(recast的測試沒有清除cache所以性能比較平穩)。實際使用時,運行時間應當是折中的,即不是完全miss,也不是完全cached。所以看起來統計數據比以前差了,實際上沒有變。
另外第一次優化貪心思路最快完成,性能提高到2倍,損失了一點點質量(而且已經比recast好了)。
單位 us微秒(百萬分之一秒)
方案 | 我的尋路(前三次) | Recast(前三次) |
---|---|---|
遠距離 粗糙解 | 27;5;4 (大致可用路徑) |
?;156;141;141 (不可用數據) |
遠距離 一次優化合計 | 44;24;24 (效果約等於最終解,可直接使用) |
?;166;149;150 |
遠距離 二次優化合計 | 160;147;146 (進一步優化質量) |
|
近距離 粗糙解 | 9;2;1 (大致可用路徑) |
?;4;3;3 (不可用數據) |
近距離 一次優化合計 | 5;2;1 (約等於最終解,可直接使用) |
?;5;4;4 |
近距離 二次優化合計 | 10;8;8 (進一步優化質量) |