Recast & Detour 与 RecastDemo
Recast & Detour 是游戏/机器人领域 3D 空间寻路的行业标杆:Recast 负责把复杂 3D 场景烘焙成导航网格(NavMesh),Detour 负责在网格上做路径规划。RecastDemo 是官方可视化工具,可以直观看到网格生成过程并实时调参——非常适合理解导航网格的生成参数。
准备工作
- Visual Studio 2022(Community 版即可):安装时务必勾选”使用 C++ 的桌面开发”工作负载(含 MSVC 编译器、CMake、Windows SDK);
- CMake:安装时勾选 “Add CMake to the system PATH for all users”;
- SDL2 开发库:下载
SDL2-devel-2.x.x-VC.zip并解压,记下路径(如E:/SDL2-2.30.12); - 源码:
git clone https://github.com/recastnavigation/recastnavigation.git或下载 ZIP。
CMake 配置生成

在源码根目录建 build 目录(out-of-source 构建,保持源码干净),命令行执行:
cd build
cmake .. -G "Visual Studio 17 2022" -A x64 ^
-DSDL2_INCLUDE_DIR="E:/SDL2-2.30.12/include" ^
-DSDL2_LIBRARY="E:/SDL2-2.30.12/lib/x64/SDL2.lib" ^
-DSDL2_SDLMAIN_LIBRARY="E:/SDL2-2.30.12/lib/x64/SDL2main.lib" ^
-DSDL2_RUNTIME_LIBRARY="E:/SDL2-2.30.12/lib/x64/SDL2.dll"
注意替换成你实际的 SDL2 路径(路径里不要有空格)。成功后会生成 RecastNavigation.sln。
编译与运行
- 双击打开
RecastNavigation.sln; - 把 RecastDemo 设为启动项目(解决方案资源管理器右键 → 设为启动项目);
- 选 Debug 或 Release 配置,按 F5 编译运行。
常见坑:运行时报“无法找到 SDL2.dll”——把 SDL2 开发目录 lib/x64/SDL2.dll 复制到 build/bin/Debug(或 Release)目录即可。

操作与体验
基本操作
鼠标左键拖拽 旋转相机
鼠标右键拖拽 平移相机
滚轮 缩放
WASD 第一人称移动相机
空格键 在选定区域生成导航网格
L 加载测试场景(nav_test.obj)
T 切换显示三角形网格
P 开始/停止角色移动测试
核心流程体验

- 按 L 加载
RecastDemo/Bin/nav_test.obj(一座城堡场景); - 鼠标框选场景区域,按空格生成彩色导航网格;
- 左侧面板把 Tool 切到 Pathfind Follow,场景里点起点、终点,观察绕开障碍的寻路路径——这就是 Recast & Detour 的核心能力;
- 调整 Cell Size / Cell Height / Agent Radius 等参数重新生成,观察网格细节与密度变化——参数直接影响网格精度和性能,是理解 NavMesh 生成的最佳教学方式。
关键参数直觉
- Cell Size / Cell Height:体素化分辨率。越小网格越精细,烘焙越慢、内存越大;
- Agent Radius / Height:寻路代理的半径/身高,决定哪些狭窄通道不可通行;
- Max Slope:可爬坡度上限;
- Walkable Climb:可跨越的台阶高度。
把这些参数玩明白,后续在项目里接 Recast/Detour(或 UE/Unity 的 NavMesh)时就能直接对应上概念。


