recastnavigation
丘上人
如果感觉不好,那就自己动手
展开
-
google 的 recastnavigation 笔记 0
截止到2018 /9/12最新版的recastnavigationracastNavigation实际上是有三部分。第一部分是recast 建立寻路模型(navmesh),可以参看我的前面1 到5篇博客。这一步其实可以简化成让美术去手动创建模型,不过对模型网格是有一定要求的,需要指定一个美术规范,然后在用recast后面部分的代码创建recastmesh对象。第二部分是detour,寻路,...原创 2018-09-12 17:27:35 · 1471 阅读 · 0 评论 -
recast5 rcBuildPolyMesh
rcBuildPolyMesh ,将上面求出的contours 拆分成多个小的凸的polygons,方法是先将contours三角化,再对三角形组装,对生成的polygons有最大边数限制,每个polygon 都记录area和regs,一个firstVert存放对所有顶点哈希划分的首个数据的下标,nextVert 存放所有顶点的的下一个顶点的下标。大小是大于等于nverts的。在recastm...原创 2019-05-24 12:06:37 · 577 阅读 · 0 评论 -
recast 1 rasterizeTri dividePoly
static bool rasterizeTri(const float* v0, const float* v1, const float* v2, const unsigned char area, rcHeightfield& hf, const float* bmin, const float* bmax, const float cs,...原创 2019-05-11 17:17:05 · 642 阅读 · 5 评论 -
recast 3 partition
1、watershedrcBuildDistanceField()//通过calculateDistanceField ,求取距离,与前面的erode前部分操作类似,与erode不同的是,这一步将只保存到short类型的chf.dist中了,并且是在erode做完操作的基础上进行计算的,所以与erode操作是一个承接的关系。再通过boxBlur将距离做一个平滑。rcBuildRegion()...原创 2019-05-21 12:24:09 · 632 阅读 · 0 评论 -
recast 2 CompactHeightfield
rcCompactCell 和rcCompactSpan组合来标识原来的rcspans,int idx = 0; for (int y = 0; y < h; ++y) { for (int x = 0; x < w; ++x) { const rcSpan* s = hf.spans[x + y*w]; // If there are no span...原创 2019-05-12 14:57:04 · 511 阅读 · 0 评论 -
recast 4 BuildContours
rcBuildContours,传入到rcbuildContours 中应该是没有overlap的flags 存放当前span的四个方向的相邻span的情况,因为遍历cell中的所有spanwalkContour ,方式与前一篇描述的partition中的walkcontour一样,按顺时针方向将 边缘span位置和region值顺序存储到points中去了。getCornerHeig...原创 2019-05-23 12:09:49 · 809 阅读 · 1 评论 -
点到线段的距离 distancePtSeg2d distancePtSeg
线段是有范围的,考虑下面三种情况//3dstatic float distancePtSeg(const float* pt, const float* p, const float* q){ float pqx = q[0] - p[0]; float pqy = q[1] - p[1]; float pqz = q[2] - p[2]; f...原创 2019-05-30 10:47:37 · 557 阅读 · 0 评论 -
recast 6 rcBuildPolyMeshDetail
buildPolyDetail() 传入的是contours,先对过长的边进行插值,通过”int nn = 1 + (int)floorf(d/sampleDist);“ 进行判断需要划分多少段,这个过程也对点的y轴进行了设置。然后按原来的方向顺序将点的下标放到hull中,形成一个精细化的三维的contours(hull)。然后进行triangulatehull过程。再然后,对整个cont...原创 2019-05-31 09:44:56 · 598 阅读 · 0 评论