From f076d979ff067365c02de4dda82c543c6fb1af67 Mon Sep 17 00:00:00 2001 From: ikpil Date: Fri, 12 Jan 2024 02:54:17 +0900 Subject: [PATCH] update: readme - how to works --- README.md | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index d846de7..7505838 100644 --- a/README.md +++ b/README.md @@ -35,27 +35,18 @@ Recast Navigation is divided into multiple modules, each contained in its own fo - `DotRecast.Recast.Demo`: Standalone, comprehensive demo app showcasing all aspects of Recast & Detour's functionality - `test/DotRecast.*.Test`: Unit tests +## ⚙ How it Works -## DotRecast.Recast +Recast constructs a navmesh through a multi-step mesh rasterization process. -Recast is state of the art navigation mesh construction toolset for games. +1. First Recast rasterizes the input triangle meshes into voxels. +2. Voxels in areas where agents would not be able to move are filtered and removed. +3. The walkable areas described by the voxel grid are then divided into sets of polygonal regions. +4. The navigation polygons are generated by re-triangulating the generated polygonal regions into a navmesh. -Recast constructs a navmesh through a multi-step rasterization process: - -1. First Recast voxelizes the input triangle mesh by rasterizing the triangles into a multi-layer heightfield. -2. Voxels in areas where the character would not be able to move are removed by applying simple voxel data filters. -3. The walkable areas described by the voxel grid are then divided into sets of 2D polygonal regions. -4. The navigation polygons are generated by triangulating and stitching together the generated 2d polygonal regions. - -## DotRecast.Detour - -Recast is accompanied by Detour, a path-finding and spatial reasoning toolkit. You can use any navigation mesh with Detour, but of course the data generated with Recast fits perfectly. - -Detour offers a simple static navmesh data representation which is suitable for many simple cases. It also provides a tiled navigation mesh representation, which allows you to stream of navigation data in and out as the player progresses through the world and regenerate sections of the navmesh data as the world changes. - -## DotRecast.Recast.Demo - -You can find a comprehensive demo project in the `DotRecast.Recast.Demo` folder. It's a kitchen sink demo showcasing all the functionality of the library. If you are new to Recast & Detour, check out [SoloNavMeshBuilder.cs](/src/DotRecast.Recast.Demo/Builder/SoloNavMeshBuilder.cs) to get started with building navmeshes and [TestNavmeshTool.cs](/src/DotRecast.Recast.Demo/Tools/TestNavmeshTool.cs) to see how Detour can be used to find paths. +You can use Recast to build a single navmesh, or a tiled navmesh. +Single meshes are suitable for many simple, static cases and are easy to work with. +Tiled navmeshes are more complex to work with but better support larger, more dynamic environments. Tiled meshes enable advance Detour features like re-baking, heirarchical path-planning, and navmesh data-streaming. ### Building DotRecast.Recast.Demo @@ -82,10 +73,6 @@ You can find a comprehensive demo project in the `DotRecast.Recast.Demo` folder. - in the DotRecast folder open a command prompt and run `dotnet test` -## Integrating with your game or engine - -It is recommended to add the source directories `DotRecast.Core`, `DotRecast.Detour.Crowd`, `DotRecast.Detour.Dynamic`, `DotRecast.Detour.TitleCache`, `DotRecast.Detour.Extras` and `DotRecast.Recast` into your own project depending on which parts of the project you need. For example your level building tool could include `DotRecast.Core`, `DotRecast.Recast`, and `DotRecast.Detour`, and your game runtime could just include `DotRecast.Detour`. - ## Discuss - discussions: