可用于游戏开发中构建导航网格和实现路径寻路。包含Recast导航网格构建工具和Detour路径寻路工具,支持自动生成稳健网格,快速处理关卡几何,提供静态及 tiled 导航网格,适配动态场景和数据流式加载。【此简介由AI生成】
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 |
Recast & Detour

Recast
Recast 是一款用于游戏的顶尖导航网格构建工具集。
- 它具备自动化特性,这意味着您可以将任何关卡几何体导入其中,都能得到可靠的网格结果。
- 它速度很快,能为关卡设计师提供快速的周转时间。
- 它是开源的,因此提供完整的源代码,您可以根据自己的需求进行定制。
Recast 的处理流程始于从关卡几何体构建体素模型,然后在其上生成导航网格。该过程包括三个步骤:构建体素模型、将模型划分为简单区域、将这些区域剥离为简单多边形。
- 体素模型是通过将输入的三角形网格光栅化到多层高度场中构建而成。然后对模型应用一些简单的过滤器,以剔除角色无法移动到的位置。
- 模型所描述的可行走区域被划分为简单的叠加 2D 区域。生成的区域只有一个非重叠的轮廓,这极大地简化了流程的最后一步。
- 导航多边形通过首先追踪区域边界,然后对其进行简化,从而从区域中剥离出来。最终生成的多边形会被转换为凸多边形,使其非常适合寻路和对关卡进行空间推理。
Detour
Recast 配有 Detour 路径查找和空间推理工具包。您可以将任何导航网格与 Detour 配合使用,不过 Recast 生成的数据自然能完美适配。
Detour 提供了适用于多种简单场景的静态导航网格,以及支持动态加载和卸载网格块的分块导航网格。分块网格能让您构建这样的系统:随着玩家在关卡中的推进,动态加载和卸载新的导航数据;或者在游戏世界发生变化时,重新生成相应的网格块。
Recast 演示
您可以在 RecastDemo 文件夹中找到一个全面的演示项目。这是一个集成了该库所有功能的综合演示。如果您刚接触 Recast 和 Detour,可以查看 Sample_SoloMesh.cpp 来了解如何构建导航网格,并通过 NavMeshTesterTool.cpp 学习如何使用 Detour 进行路径查找。
构建 RecastDemo
RecastDemo 使用 premake5 来生成特定平台的项目文件。请下载 premake5,并确保它已添加到您的环境变量路径中,或者指定其路径。
Linux
- 根据您的发行版指南安装 SDL2 及其依赖项。
- 在
RecastDemo文件夹中运行premake5 gmake。 - 进入
Build/gmake目录,然后运行make。 - 进入
RecastDemo/Bin目录,运行./RecastDemo。
OSX
- 从 此处 获取最新的 SDL2 开发库 dmg,并将
SDL2.framework放置在/Library/Frameworks/目录下。 - 导航到
RecastDemo文件夹,运行premake5 xcode4。 - 打开
Build/xcode4/recastnavigation.xcworkspace。 - 在左侧面板中选择 "RecastDemo" 项目,进入 "BuildPhases" 标签页,展开 "Link Binary With Libraries"。
- 删除现有的 SDL2 条目(其图标应为白色方框),然后点击加号,选择 "Add Other",并选中
/Library/Frameworks/SDL2.framework。此时其图标应变为 suitcase 样式。 - 将 RecastDemo 项目设置为目标并构建。
Windows
- 从 此处 获取最新的 SDL2 开发库发行版,并将其解压到
RecastDemo\Contrib目录。重命名 SDL 文件夹,确保路径RecastDemo\Contrib\SDL\lib\x86有效。 - 在
RecastDemo文件夹中运行"premake5" vs2019。 - 打开解决方案,进行构建并运行。
运行单元测试
- 按照上述构建 RecastDemo 的说明操作。Premake 应生成另一个名为“Tests”的构建目标。
- 构建“Tests”项目。这将在
RecastDemo/Bin/目录中生成一个名为“Tests”的可执行文件。 - 运行“Tests”可执行文件。它将执行所有单元测试,指出失败的测试,并显示成功测试的数量。
集成到您自己的项目中
建议根据您项目所需的部分,将源目录 DebugUtils、Detour、DetourCrowd、DetourTileCache 和 Recast 添加到您自己的项目中。例如,您的关卡构建工具可以包含 DebugUtils、Recast 和 Detour,而您的游戏运行时可以只包含 Detour。
贡献
有关贡献指南,请参阅贡献文档。
讨论
- 讨论 Recast & Detour:http://groups.google.com/group/recastnavigation
- 开发博客:http://digestingduck.blogspot.com/
许可证
Recast & Detour 采用 ZLib 许可证授权,更多信息请参见 License.txt。