56 lines
2.2 KiB
Plaintext
56 lines
2.2 KiB
Plaintext
Recast Version 1.0
|
|
|
|
Recast is 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 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 Recast process starts with constructing a voxel mold from a 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, peeling off
|
|
the regions as simple polygons.
|
|
|
|
1. The voxel mold is build 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.
|
|
2. 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.
|
|
3. The navigation polygons are peeled off 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.
|
|
|
|
The toolset code is located in the Recast folder and demo application using the Recast
|
|
toolset is located in the RecastDemo folder.
|
|
|
|
The project files with this distribution can be compiled with Microsoft Visual C++ 2008
|
|
(you can download it for free) and XCode 3.1.
|
|
|
|
--
|
|
|
|
Release Notes
|
|
|
|
----------------
|
|
* Recast 1.0
|
|
Released March 29th, 2009
|
|
|
|
This is the first release of Recast.
|
|
|
|
The process is not always as robust as I would wish. The watershed phase sometimes swallows tiny islands
|
|
which are close to edges. These droppings are handled in rcBuildContours, but the code is not
|
|
particularly robust either.
|
|
|
|
Another non-robust case is when portal contours (contours shared between two regions) are always
|
|
assumed to be straight. That can lead to overlapping contours specially when the level has
|
|
large open areas.
|
|
|
|
|
|
|
|
Mikko Mononen
|
|
memon@inside.org
|