
Recast/Detour
隨意的風
从事10+年的技术开发,结交天下软件研发朋友,共同探讨技术、共同进步。
展开
-
3D集合图元:最小边界框/包围盒(boundingbox)
====================================================||欢迎讨论技术的可以相互加微信:windgs (请备注csdn+xx职业)====================================================||对于2D边界框的应用时比较广泛地,它为一个简单匹配建立了很小的计算规则,3D模型的boundingb...原创 2019-02-22 16:42:26 · 6171 阅读 · 0 评论 -
Navigation导航寻路RecastDemo讲解
在2D游戏中,我们常常使用A星算法,基于方形网格进行寻路。(图:2D游戏中的A星寻路)但是在3D游戏中,场景巨大,2D的方形网格寻路虽然可用,但效率极低。这时候,用NavMesh导航网格寻路是最佳的解决方案。(图:unity3d中的寻航寻路网格)在unity3d中的导航寻路组件Navigation,可以根据3D场景生成用于寻路的导航网格NavMesh。本文介绍寻路功能的主角...原创 2019-02-20 16:46:33 · 5652 阅读 · 0 评论 -
fopen-fread-fwrite-open-read-write原理源码详解
最近在研究kb引擎的时候,看recast源码和navmesh源码中的数据加载时候看到了fread和fwrite,发现有两种不同的写法,请看下面的图示。突然间想起来,2种不同的写法效率是否会不同那,所以就想看看底层系统函数的源码,于是乎recast源码写法kb源码研究了一下fwrite, write,printf的实现原理, 给大家分享一下,给大家展示一下一. 代码片段...原创 2019-02-26 14:33:20 · 4182 阅读 · 2 评论 -
NavMeshAgent参数及API
目录 NavMeshAgent API 官方API UnityEngine.AIModule NavMeshAgent组件 NavMeshAgent参数 Agent Size Radius:半径。 Height:高度。 Base Offset:偏移值。 Steering(操控行为(详情见Game AI篇,AI底层)) Speed:在NavMes...原创 2019-02-21 10:31:14 · 9107 阅读 · 1 评论 -
RecastNavigation-NavMesh生成原理-(二)
本文翻译自CritterAI的文档:http://critterai.org/projects/cainav/doc/html/e72bd1ee-04b0-4bbb-a21d-d8d7ecaa11af.htmRecastNavigation是一款非常强大的寻路系统,被广泛的应用于各大游戏引擎中。如Unreal,Unity等。我之前也尝试看过部分RecastNavigation源码,添加了一些注...原创 2019-03-22 11:30:04 · 885 阅读 · 0 评论 -
NavMesh生成研究(一):体素化过程
NMGen是一个开源项目,包括Java版的recast静态网格生成代码,以及详细介绍生成过程的文章。因为在阅读过程中觉得对理解recast原理非常有用,所以决定将其翻译在自己blog上。原blog上完整的目录包括:高度域介绍(Introduction to Heightfields) 总体过程概述(The High Level Process) 配置参数(Configuration P...原创 2019-03-22 11:32:28 · 2206 阅读 · 0 评论 -
NavMesh生成研究(三):轮廓生成
注:因第二步——区域生成的基本内容被我写的原创文章涵盖,因此不再花时间单独翻译,想了解这一步的可参见文章。概述这篇文章描述了构造导航网格过程中的第三步:简单多边形(轮廓和凹面)的生成,它们代表着源几何体的可行走表面区域。这些轮廓仍然由体素空间(voxel space)的单位来表示,但是这是从体素空间转向向量空间(vector space)的第一步。源数据类:OpenHeightf...原创 2019-03-22 11:34:10 · 1082 阅读 · 0 评论 -
NavMesh生成研究(四):凸多边形生成
这篇文章描述了导航网格构建过程中的第四步:从代表轮廓的简单多边形生成凸多边形。从这一步开始,我们离开体素空间,回到向量空间。源数据类:ContourSet构造器类:PolyMeshFieldBuilder数据类:PolyMeshField如果你需要回忆这一步的大致过程,请回到总体概述。概述这一阶段的主要工作如下:轮廓(contour)的顶点位于体素空间中,这就意味...原创 2019-03-22 11:35:22 · 1511 阅读 · 0 评论 -
NavMesh生成研究(五):细节网格生成
这篇文章描述了构造导航网格过程中的第五步,也就是最后一步:带有高度细节信息的三角网格的生成。源数据类:PolyMeshField和OpenHeightField构造类:DetailMeshBuilder数据类:TriangleMesh如果你需要回忆这一步的大致过程,请回到总体概述。为什么需要这一步如果源网格的可行走表面被投影到xz平面上,且被前一个步骤中生成的多边...原创 2019-03-22 11:36:28 · 970 阅读 · 0 评论 -
RecastNavigation-NavMesh生成原理
本文翻译自CritterAI的文档:http://critterai.org/projects/cainav/doc/html/e72bd1ee-04b0-4bbb-a21d-d8d7ecaa11af.htmRecastNavigation是一款非常强大的寻路系统,被广泛的应用于各大游戏引擎中。如Unreal,Unity等。我之前也尝试看过部分RecastNavigation源码github地...原创 2019-02-20 16:45:41 · 848 阅读 · 0 评论 -
Recast & Detour 寻路引擎的基本流程
Recast & Detour是一个开源的寻路引擎,其遵循zlib协议,基本上你可以免费且无限制的将它用作个人和商业产品中。从名字中我们可以看到,这个引擎分成两部分:第一部分是Recast主要功能是将场景网格模型生成用于寻路网格模型(Navigation Mesh)。所生成的寻路网格模型当然要比原模型简单很多,这也提高了实时寻路算法的效率。第二部分是Detour主要功能...原创 2019-02-20 16:42:31 · 2402 阅读 · 0 评论 -
Vector3类详解
====================================================||欢迎讨论技术的可以相互加微信:windgs (请备注csdn+xx职业)====================================================||--------------------- 作者:隨意的風 来源:优快云 原文:https:/...原创 2019-02-22 17:33:54 · 8658 阅读 · 0 评论 -
Bounds(包围盒)详解-【AABB包围盒、Sphere包围球、OBB方向包围盒、FDH固定方向凸包】
====================================================||欢迎讨论技术的可以相互加微信:windgs (请备注csdn+xx职业)====================================================||目录目录欢迎讨论技术的可以相互加微信:windgs (请备注csdn...原创 2019-02-22 20:09:24 · 30661 阅读 · 2 评论 -
Recast Navigation 学习笔记(一)
RecastNavigation下载地址https://github.com/recastnavigation/recastnavigationCritterAI 下载地址http://www.critterai.org/ Recast/Detour文档http://masagroup.github.io/recastdetour/index.html理解 Hei...原创 2019-02-20 10:10:34 · 5844 阅读 · 0 评论 -
critterai
http://www.critterai.org/projects/dowloads-archive.htmlhttp://critterai.org/projects/cainav/doc/html/e72bd1ee-04b0-4bbb-a21d-d8d7ecaa11af.htm[This is preliminary documentation and is subject to ch...转载 2019-02-20 10:47:55 · 958 阅读 · 0 评论 -
RecastNavigation-高度场讲解-(一)
目录概述两种高度场:体素集(voxel field)和顶点集(vertex field)。体素集-包括普通高度场(Heightfield)紧缩高度场(CompactHeightfield)。顶点集-包括轮廓集合(ContourSet)多边形网格(PolyMesh)。高度场结构概要(Basic Heightfield Structure)实心高度场(The...原创 2019-02-20 13:37:41 · 2778 阅读 · 0 评论 -
RecastNavigation之dtNavMesh类和dtMeshTile类介绍
dtMeshTile类:相当于一个链表元素,有Next指针,指向下一个dtMeshTile。Poly相关类Poly分成:正常的Poly 和 OffMeshPoly。正常的Poly 又分成 原始的Poly 和 Detail化的Poly,本文介绍这两种。Poly的边分成三种类型:1. 正常边:有tile内部的poly与之相邻2.border边:没有poly与之相邻3.P...原创 2019-02-20 14:20:13 · 1474 阅读 · 0 评论 -
Recast源码解析(二):NavMesh导航网格生成原理(上)
上文说到recast的寻路分为两部分:recast(建网格)和detour(寻路),这里就建网格这一步谈谈自己结合代码的理解。这里的navmesh指的是solo mesh,也就是静态网格,与能动态添加障碍的tile cache加以区别这里推荐一个网站critterAI(网站地址),里面有两个很好的学习项目:CAINav是一个基于recast开发的可以在Unity运行的导航系统;NMGen包括J...原创 2019-02-20 14:44:49 · 1598 阅读 · 0 评论 -
Recast源码解析(一):射线实现原理
最近公司的项目用到了recast做服务端寻路,自己在使用的过程中对其如何实现网格寻路很感兴趣,根据需要研读过部分实现代码,同时也发现网上关于源码分析方面的资料较少,因此这里打算写成一组系列做个总结。本文是针对recast中的一个射线方法(InputGeom::raycastMesh),结合代码探讨其实现原理,并在此过程中穿插相应数学解释。recast简介说到寻路,主流的地形建模方法有三种:...原创 2019-02-20 14:53:23 · 1154 阅读 · 0 评论