I am currently studying UT’s navigation solution, but the code seems quite confusing to me.
And I think it’s different from the general navmesh+detour solution.
So I came here hoping to find someone has understand them completely.
After a week’s study, I think the basic concept is:
1.Generate a path graph based on the navmesh that generated by the engine. 2.Do some magic to simplify the pathgraph, I call it magic because I still cant comprehend it well.
I assume the dtNavMesh is the result of the two steps above according to the comment:
/// A navigation mesh based on tiles of convex polygons. /// @ingroup detour class NAVMESH_API dtNavMesh
I think it’s some kind of result of the navmesh created, for the actual pathfinding code use.
And also for the UT code to generate the path graph.
The confusing part is in the dtNavMesh, the ‘tile’ thing , I cant understand why tile while there’re polys already, what’s the difference. And the tiles are store in an array, wired, store in some two-dimensional grid looks more tiles to me.
Furthermore in the tile structure some dtLink is stored.
All those stored as linked list, why not a graph?
Now here is completely beyound what I can conclude, what’s the next thing I should look into?
Or is there any articles about this topic recommended?