A couple of things. First, it sounds like you might be confusing Recast with Detour. Basically, Recast builds the meshes and Detour uses them. Recast takes the input geometry (provided by your parser) and creates a mesh file. I have previously been reluctant to get specific because a) I don't use Recast+Detour anymore and b) the API is in a rather constant state of flux, so what I say now may already be out of date, since I'm drawing on my experience from approximately two years ago. And if it isn't out of date yet, it undoubtedly will be in the future.
Nevertheless, the basic process in Recast for generating a mesh is as follows:
The parameters for these functions are well documented both by comments in Recast.h and example in the samples.
There are some restrictions on the config values you pass. I have already posted details on that somewhere in this forum, but I will leave it to you to find the post.
Nevertheless, the basic process in Recast for generating a mesh is as follows:
- Get geometry for the area you want to mesh from your parser
- Create rcConfig structure with your config values
- Determine bounding box for the tile you want to create
- Call rcCreateHeightField, passing in the geometry from the parser
- Call rcMarkWalkableTriangles
- Call rcRasterizeTriangles
- Call rcFilterLowHangingWalkableObstacles
- Call rcFilterLedgeSpans
- Call rcFilterWalkableLowHeightSpans
- Call rcBuildCompactHeightField
- Call rcErodeArea
- Call rcBuildDistanceField
- Call rcBuildRegions
- Call rcBuildContours
- Call rcBuildPolyMesh
- Call rcBuildPolyMeshDetail
- Call dtCreateNavMeshData. This will give you the structure to save to the disk. This will be the mesh for the tile you've just created. Later you can load these files and use dtAddTile (or something similarly named) to load the tiles for use in pathfinding.
The parameters for these functions are well documented both by comments in Recast.h and example in the samples.
There are some restrictions on the config values you pass. I have already posted details on that somewhere in this forum, but I will leave it to you to find the post.
Edit: As for dynamic objects, take a look at the DetourCrowd folder. He has added some local navigation code since I've stopped using R+D.