Recastnavigation

本文介绍了Recastnavigation的安装步骤,包括下载源码、安装sdl库、使用premake5生成解决方案。此外,还详细讲解了Recastnavigation的参数配置,如cellsize、cellHeight、agent参数等,以及导航网格的NavMesh生成算法,帮助理解3D场景项目的导航需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装

1.下载recastnavigation的源码.
2.recastnavigation依赖于sdl的库。所以需要安装sdl。下载sdl2源码并解压。
在这里插入图片描述
下载源码版需要编译,直接下载编译好的
3.sdl解压后的文件夹可能叫SDL2-2.0.16,修改为SDL,复制到/recastnavigation-master/RecastDemo/Contrib。 此时RecastDemo/Contrib/SDL/lib/x86下有了SDL2.dll、SDL2.lib、SDL2main.lib(如果第二部下载的是源码版,要自己编译,把编译好的放到此目录下)
4.下载premake5.exe。复制到/RecastDemo
5.在/RecastDemo目录打开cmd界面,执行premake5 vs2019(本机的vs版本)
6.进入/RecastDemo/Build/vs2019,打开recastnavigation.sln
7.把RecastDemo工程设置为启动项目,启动!

参数

  • Rasterization

    • cellsize:数值越小,越接近原始多边形的形状,同时生成速度和运行时内存占用也会增大
    • Cell Height:数值越小,越接近原始多边形的形状,不会影响内存,但是cellHeight越高,离原始图形的距离就越高
      例:Height=0.1在这里插入图片描述
      Height=0.6
      在这里插入图片描述
  • Agent(角色,以为站在角色的角度,行走面该是什么样的)

    • Height:角色高度,例如有一张桌子的地图,桌子下面本来是没有行走面的,但是由于agent的Height很低,所以能钻到桌子下面,意味着桌子下面可生成行走面
      例如:height=4.4在这里插入图片描述
      Height=1.0
      在这里插入图片描述

    • Radius:角色半径,角色的半径越大,角色中心越不能贴近墙或地图边缘,那么墙和地图边缘就没必要生成行走面
      例:Radius=0.1
      在这里插入图片描述
      Radius=2.0
      在这里插入图片描述

    • Max Climb:最大跨过的高度,可跨越两个行走面的高度差
      例:Climb=1.0
      在这里插入图片描述
      Climb=2.0
      在这里插入图片描述

    • Max Slope:最大坡度,可跨越行走面最大斜率(Climb是跨越两个行走面高度差的能力,Slope是在一个行走面上的爬坡能力)
      例:Slope=40
      在这里插入图片描述

      Slope=15
      在这里插入图片描述

  • Region:

    • Min Region Size:生成的最小区域的大小,在一些小面积的平面身上,如果region过小,很可能在这些小平面上生成行走面(如果这些行走面按照设计是不可到达的,那么这些小行走面没有意义,形成孤岛效果)
      例:region=20
      在这里插入图片描述
      region=10
      在这里插入图片描述

    • Merged Region Size: 可合并区域的大小,生成网格可能会生成一些细小的三角形,设置大一点的Merge值,可以把较小的三角形合并
      例:Merged=1
      在这里插入图片描述

      merge=20
      在这里插入图片描述

  • Partitioning:

    • Watershed:分水岭算法,最经典、效果最好,但处理比较慢,一般用于离线处理。
    • Monotone:最快且可以保证生成的是不重叠、没有洞的 Region,但是生成的 Region 可能会又细又长,效果不好。
      Layer:速度、效果都介乎分水岭算法和 Monotone partioning 之间,比较依赖于初始数据。
    • Layers:速度、效果都介乎分水岭算法和 Monotone partioning 之间,比较依赖于初始数据。
      导航网格NavMesh生成算法比较复杂,建议直接使用这个库可以解决大多数3D场景项目需求
  • Filtering

    • Low Hanging Obstacles
    • Ledge Spans
    • Walkable Low Height Spans
  • Polygonization

    • Max Edge Length:最大边长,当边过长时,会再边上增加节点,生成新的多边形,使边长变短
      例如:length=20
      在这里插入图片描述
      length=3
      在这里插入图片描述
    • Max Edge Error:值越小,生成的多边形越密,越接近原始形状,消耗的资源也越多
      例:Max Edge Error=0.6
      在这里插入图片描述
      Max Edge Error=1.2
      在这里插入图片描述
    • Verts Per Poly:每个多边形的最大顶点数,越大意味着越复杂的多边形,也意味着越高的性能消耗,通常情况下6个顶点能够平衡需求和性能
  • Detail Mesh

    • Sample Distance
    • Max Sample Error

参考文献
链接: https://blog.youkuaiyun.com/mango9126/article/details/74171347
https://blog.youkuaiyun.com/memory_nothing/article/details/83589287

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值