Hello,
I've been delving into NavMesh generation in Unreal Engine 5.2, which led me to discover Recast & Detour. I explored version 1.6.0's implementation and
shared my findings.
I'd appreciate your insights on a specific topic regarding the filtering of unreachable spans.
Following the generation of the Heightfield, various filters like
rcFilterLowHangingWalkableObstacles(...),
rcFilterLedgeSpans(...), and
rcFilterWalkableLowHeightSpans(...) are applied to identify walkable spans. However, these filters understandably do not encompass all scenarios where spans should be marked as non-walkable, as the conditions can be game-specific.
To optimize memory usage and simplify the static representation of our NavMesh in our game, we are investigating the possibility of filtering out spans in unreachable locations, such as a flat walkable roof without any stairs or ladders leading to it.
In the Recast demo, walkable spans are generated in raised spots that are technically unreachable.

At present, I haven't come up with an elegant solution within Recast to address this issue. It seems like this is something that needs to be handled at a higher level, directly within Unreal Engine, post-generation with Recast (or during generation, if it's possible to extend the generation logic with our own).
Have you encountered this problem before? If so, I would greatly appreciate any suggestions or insights you can provide, such as the use of
seed points or alternative approaches.
Thank you for your time.
Best regards,
Hussein