mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-31 04:56:20 +00:00
Recast navigation
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
|
||||
/**
|
||||
@page License License
|
||||
|
||||
<pre>
|
||||
Copyright (c) 2009-2011 Mikko Mononen memon@inside.org
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
</pre>
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,109 @@
|
||||
/// @mainpage Recast Navigation
|
||||
///
|
||||
/// @image html recast_intro.png
|
||||
///
|
||||
/// <h2>Recast</h2>
|
||||
///
|
||||
/// _Recast_ is a state of the art navigation mesh construction toolset for
|
||||
/// games.
|
||||
///
|
||||
/// - It is automatic, which means that you can throw any level
|
||||
/// geometry at it and you will get a robust mesh out.
|
||||
/// - It is fast, which means swift turnaround times for level designers.
|
||||
/// - It is open source, so it comes with full source and you can
|
||||
/// customize it to your hearts content.
|
||||
///
|
||||
/// The latest version can be found on
|
||||
/// <a href="https://github.com/recastnavigation/recastnavigation">GitHub</a>.
|
||||
///
|
||||
/// The _Recast_ process starts with constructing a voxel mold from level
|
||||
/// geometry and then casting a navigation mesh over it. The process
|
||||
/// consists of three steps: building the voxel mold, partitioning the
|
||||
/// mold into simple regions, and triangulating the regions as simple polygons.
|
||||
///
|
||||
/// -# The voxel mold is built from the input triangle mesh by
|
||||
/// rasterizing the triangles into a multi-layer heightfield. Some
|
||||
/// simple filters are then applied to the mold to prune out locations
|
||||
/// where the character would not be able to move.
|
||||
/// -# The walkable areas described by the mold are divided into simple
|
||||
/// overlayed 2D regions. The resulting regions have only one
|
||||
/// non-overlapping contour, which simplifies the final step of the
|
||||
/// process tremendously.
|
||||
/// -# The navigation polygons are generated from the regions by first
|
||||
/// tracing the boundaries and then simplifying them. The resulting
|
||||
/// polygons are finally converted to convex polygons which makes them
|
||||
/// perfect for pathfinding and spatial reasoning about the level.
|
||||
///
|
||||
/// <h2>Detour</h2>
|
||||
///
|
||||
/// _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 by _Recast_ fits perfectly.
|
||||
///
|
||||
/// _Detour_ offers a simple static navigation mesh that is suitable for
|
||||
/// many simple cases, as well as a tiled navigation mesh that allows you
|
||||
/// to add and remove pieces of the mesh. The tiled mesh allows you to
|
||||
/// create systems where you stream new navigation data in and out as
|
||||
/// the player progresses the level, or regenerate tiles as the
|
||||
/// world changes.
|
||||
///
|
||||
/// <h2>Recast Demo</h2>
|
||||
///
|
||||
/// You can find a comprehensive demo project in the `RecastDemo` folder. It
|
||||
/// is a kitchen sink demo containing all the major functionality of the library.
|
||||
/// If you are new to _Recast_ & _Detour_, check out
|
||||
/// <a href="https://github.com/recastnavigation/recastnavigation/blob/master/RecastDemo/Source/Sample_SoloMesh.cpp">
|
||||
/// Sample_SoloMesh.cpp</a> to get started with building navmeshes and
|
||||
/// <a href="https://github.com/recastnavigation/recastnavigation/blob/master/RecastDemo/Source/NavMeshTesterTool.cpp">
|
||||
/// NavMeshTesterTool.cpp</a> to see how _Detour_ can be used to find paths.
|
||||
///
|
||||
/// <h3>Building RecastDemo</h3>
|
||||
///
|
||||
/// RecastDemo uses [premake5](http://premake.github.io/) to build platform specific projects.
|
||||
/// Download it and make sure it's available on your path, or specify the path to it.
|
||||
///
|
||||
/// <h4>Linux</h4>
|
||||
///
|
||||
/// - Install SDl2 and its dependencies according to your distro's guidelines.
|
||||
/// - run `premake5 gmake` from the `RecastDemo` folder.
|
||||
/// - `cd Build/gmake` then `make`
|
||||
/// - Run `RecastDemo\Bin\RecastDemo`
|
||||
///
|
||||
/// <h4>OSX</h4>
|
||||
///
|
||||
/// - Grab the latest SDL2 development library dmg from [here](https://www.libsdl.org/download-2.0.php) and place `SDL2.framework` in `/Library/Frameworks/`
|
||||
/// - Navigate to the `RecastDemo` folder and run `premake5 xcode4`
|
||||
/// - Open `Build/xcode4/recastnavigation.xcworkspace`
|
||||
/// - Select the "RecastDemo" project in the left pane, go to the "BuildPhases" tab and expand "Link Binary With Libraries"
|
||||
/// - Remove the existing entry for SDL2 (it should have a white box icon) and re-add it by hitting the plus, selecting "Add Other", and selecting `/Library/Frameworks/SDL2.framework`. It should now have a suitcase icon.
|
||||
/// - Set the RecastDemo project as the target and build.
|
||||
///
|
||||
/// <h4>Windows</h4>
|
||||
///
|
||||
/// - Grab the latest SDL2 development library release from [here](https://www.libsdl.org/download-2.0.php) and unzip it `RecastDemo\Contrib`. Rename the SDL folder such that the path `RecastDemo\Contrib\SDL\lib\x86` is valid.
|
||||
/// - Run `"premake5" vs2015` from the `RecastDemo` folder
|
||||
/// - Open the solution, build, and run.
|
||||
///
|
||||
/// <h2>Integrating With Your Own Project</h2>
|
||||
///
|
||||
/// It is recommended to add the source directories `DebugUtils`, `Detour`,
|
||||
/// `DetourCrowd`, `DetourTileCache`, and `Recast` into your own project
|
||||
/// depending on which parts of the project you need. For example your
|
||||
/// level building tool could include `DebugUtils`, `Recast`, and `Detour`,
|
||||
/// and your game runtime could just include `Detour`.
|
||||
///
|
||||
/// <h2>Contributing</h2>
|
||||
/// All development is centralized in github. Check out the <a href="https://github.com/recastnavigation/recastnavigation/blob/master/CONTRIBUTING.md">Contributing Guidelines</a> for more information.
|
||||
///
|
||||
/// <h2>Discuss</h2>
|
||||
///
|
||||
/// - Discuss _Recast_ and _Detour_:
|
||||
/// <a href="http://groups.google.com/group/recastnavigation">
|
||||
/// Recast Navigation Group</a>
|
||||
/// - Development Blog:
|
||||
/// <a href="http://digestingduck.blogspot.com/">Digesting Duck</a>
|
||||
///
|
||||
/// <h2>License</h2>
|
||||
///
|
||||
/// _Recast Navigation_ is licensed under the ZLib license.
|
||||
///
|
||||
Reference in New Issue
Block a user