RecastDemo用法

这里写自定义目录标题

    • recastnavigation介绍
      • recastnavigation的内容
    • RecastDemo安装
    • RecastDemo介绍
    • 可配置参数
    • 合理的创建标题,有助于目录的生成
    • 如何改变文本的样式
    • 生成一个适合你的列表
    • 创建一个表格
      • 设定内容居中、居左、居右
      • SmartyPants
    • 创建一个自定义列表
    • 如何创建一个注脚
    • 注释也是必不可少的
    • KaTeX数学公式
    • 新的甘特图功能,丰富你的文章
    • UML 图表
    • FLowchart流程图
    • 导出与导入
      • 导出
      • 导入

recastnavigation介绍

对于3D MMO游戏来说,游戏后端需要实现寻路功能,recastnavigation是最为经典实用的一个。recastnavigation项目自带了RecastDemo,用图形化的界面帮助用户认识寻路网格(navmesh)的生成以及寻路的过程。

recastnavigation官网地址: https://github.com/recastnavigation/recastnavigation

recastnavigation的内容

NavMesh(导航网格寻路)= 邻接的凸多边形(Recast) + A*寻路(Detour)

  • Recast,用于生成邻接的凸多边形集合数据,使用参照示例:RecastDemo/Sample_SoloMesh.cpp
     - ① Solo Mesh,纯粹的邻接凸多边形集合。
     - ② Tile Mesh,基于Tile划分的N个邻接凸多边形集合。
     - ③ Temp Obstacles,支持动态障碍物的,基于tile划分的N个邻接的凸多边形集合。

  • Detour,基于邻接的凸多边形集合的A*寻路算法,示例参照:RecastDemo/NavMeshTesterTool.cpp

RecastDemo安装

RecastDemo是recastnavigation的一个演示项目,包含了recastnavigation的所有功能,官网对它的介绍为

You can find a comprehensive demo project in the RecastDemo folder. It’s a kitchen sink demo showcasing all the functionality of the library. If you are new to Recast & Detour, check out Sample_SoloMesh.cpp to get started with building navmeshes and NavMeshTesterTool.cpp to see how Detour can be used to find paths.

下载源码之后开始构建RecastDemo,按照官网的介绍,需要premake5和SDL2

premake5的下载地址: https://premake.github.io/download
SDL2的下载地址: https://github.com/libsdl-org/SDL/releases
windows下载的是SDL2-devel-2.26.3-VC.zip

然后把premake5.exe放入RecastDemo目录下,SDL2-devel-2.26.3-VC.zip解压放入RecastDemo\Contrib 目录下,并重命名为SDL

1、Navigate to the RecastDemo folder and run premake5 vs2022
2、Open Build/vs2022/recastnavigation.sln.
3、Set RecastDemo as the startup project, build, and run

然后在RecastDemo的bin目录下有了一个RecastDemo.exe,直接执行

RecastDemo介绍

源码结构:
   - DebugUtils 调试
   - Detour 利用导航网格做寻路操作。导航网格可以使Recast生成的,也可以是其他工具生成的。
   - DetourCrowd 提供群体寻路行为的功能
   - DetourTileCache Tile缓存
   - Recast 根据提供的模型生成用于寻路的导航网格
   - RecastDemo 展现Recast、Detour提供的功能的Demo
   - Test 测试

SoloMesh生成过程(RecastDemo/Sample_SoloMesh.cpp中handleBuild函数),导航网格生成步骤:
   - 场景模型体素化(Voxelization),或者叫光栅化(Rasterization)。
   - 过滤可行走表面(Walkable Suface)
   - 区域生成(Region)
   - 轮廓生成(Contour边缘)
   - 轮廓网格生成(Poly Mesh)
   - 三角形化(Triangulation)生成细节网格(Detailed Mesh)

可配置参数

类别 可配置参数 参数说明
体素块大小配置(Rasterization) Cell Size 体素块底部边长
Cell Height 体素块高度
Agent可走区域标识(Agent) Height 配置可走高度
Radius 可走半径
Max Climb 最大爬坡高度
Max Slope 最大爬坡角度
区域(Region) Min Region Size 最小未连接的区域大小
Merged Region Size 合并的区域大小
区域生成算法(互斥)(Partitioning) Watershed 分水岭算法
Monotone 单调算法
Layers 分层算法
高度区间过滤(可选)(Tile Mesh)(Polygonization) Low Hanging Obstacles 不可走变可走
Ledge Spans 峭壁区间检查
Walkable Low Height Spans 同列相邻距离检查
凸多边形相关参数(Temp Obstacles)(Polygonization) Max Edge Length 限制最大轮廓边长
Max Edge Error 允许最大边界误差(轮廓优化)
Ver Per Poly 多边形最大顶点数
详细三角形生成参数(DetailMesh) Sample Distance 采样等分距离
Max Sample Error 最大采样距离允许误差

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目 Value
电脑 $1600
手机 $12
导管 $1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPE ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
Quotes "Isn't this fun?" “Isn’t this fun?”
Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。1

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.3.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. 注脚的解释 ↩︎

你可能感兴趣的:(recast)