我的手机导航网格算法不会动GPS都开着手机网格雨好就是不会动

NavMesh,关于导航网格的创建
NavMesh,关于导航网格的创建
[摘要:正在《野生智能游戏编程实行》中,有细致的论述若何设立建设导航网,然则却出有一丁面的代码,并且正在建立过程当中,另有很多细节题目出有办理,正在百度文库中有一篇闭于AS3设立建设导航网的]
在《人工智能游戏编程真言》中,有详细的叙述如何建立导航网格,但是却没有一丁点的代码,而且在创建过程中,还有许多细节问题没有解决,在百度文库中有一篇关于AS3建立导航网格的文章,里面也讲的很好,但是那里使用三角形作为节点,这显然对于多边形较多的3D世界不太合适。不过里面的A*寻路算法的相关取值是值得观看的。进行了几个礼拜的编写,导航网格稍微能看我先给几张截图,让大家有个底!可以生成多边形的网格节点,而且可以自动生成相邻连接,支持鼠标直接点选节点并且显示(渲染)其和其有连接的节点,以及加入物体后分裂受影响的节点,以及裁去小面积节点,但是没有3-2合并,在后面会完善。我经过三张地图的测试,感觉还不错
这张图是原网格模型,这里用的是OBJ文件格式模型,可以用3DMAX直接导出,obj文件加载器要自己些,推荐书籍有《DirectX+游戏开发终极指南》,《focus on 3d model》,场景自己用3DMAX制作,这里的场景比较粗陋,但是可以用来测试。
最初直接把全部三角形当作节点加入NavMesh中,这里面就是画出的节点,注意这里不是用线框模式渲染出来的,而是渲染的NavMesh,整个NavMesh包含一个导航节点链表(每个节点包括一个顶点索引数组,指向后面顶点数组的位置,就是这个节点所有顶点的索引集合。还有一个法线索引,主要是为了减小存储空间,就像《真言》里说的),顶点数组(包含顶点位置,还有指向的导航节点的指针的链表,这里可以知道哪些节点包含了此顶点,这个在合并的时候很有用哦,而且真言里也讲了极大的缩小合并时间),法线数组(法线值,因为游戏中,能走的面片法线很多相同的,基本都是指向Y轴)。现在是把你的OBJ模型里面可走(表示面法线值不会很离谱)的三角形,用你的OBJ加载器把纯三角形(只包含位置,DX中要使顶点序为顺时针)一个一个的加到NavMesh中,在加之前判断法线是否过陡或向下的那种,假如法线测试通过,那么在法线数组中查找是否有相近的法线值,并设置法线索引,假如没有那么在法线数组中假如当前法线,并且设置当前节点的法线索引。然后在设置节点的顶点索引,对当前三角形的每个顶点检查是否在顶点数组中(这里使用的是两点的最小距离小于某个值我们就把它们看作相同的顶点),假如在那个当前节点加入一个顶点索引(注意顶点中的节点链表要加一个指向当前节点的指针),假如不在数组内,那么我们在顶点数组中加入当前点,并把索引加入节点的索引数组中。最后把当前节点的指针加入节点链表中。加入全部三角形之后我们渲染当前节点,得到上图的结果。全是三角形,注意这里不是线框显示的哦!
接下来是合并相邻且能构成凸体的节点,我们循环所有的顶点,由于我们的顶点保存了所有指向本顶点的节点,那么我们对顶点内的某两个节点进行查找,假如两个节点有两组相同的顶点索引那么这两个节点送入合并函数中,首先我们要看两个顶点合并后是否为凸体,这里用个最简单的方法,就是检查合并点处的两个内角相加是否大于平角(180度),假如两个合并点都没有大于平角,那么我们合并他们。这里不给出合并的具体过程,因为要点太多,所以可以留言问。
这里知道没有节点合并,那么表示合并结束,注意最外循环检查有没有节点合并。渲染后见上图,可以看见可以保证凸体(注意,千万不能有重叠三角形,否则会失败,所以要单层,或者是层高很能很小)。
上图是用鼠标拾取节点的效果,这里没有什么优化,一个一个的遍历节点,不过这里用AABB来排除了大量的节点,然后对射线与节点的所有三角形(扇形)进行检测,对有碰撞的节点进行排序,取最前的节点,返回碰撞点
这里是生成连接的结果,这里只谈如何生成有相邻边的生成,阶梯和跳跃的连接也用类似的方法实现,只是投影在某个面上进行分析而已。
关于直接相邻的方法是:每两个节点只有一个连接(这里凸体能很好的支持此特性,至于其它特殊连接,我们用手动设置方式来生成,后话),对所有节点遍历
然后检查是否已有连接,有的话直接跳过,假如没有的话计算两个节点的AABB(这里会在xz面放宽一点,你懂得)假如不相交,跳过。如果相交,检查两个节点的每条边(线段表示)相互关系,我们目的是要找出共线且重合的两个线段。假如满足那么两个节点相邻,相互加入连接。
上图是连接生成后,拾取节点(黑色)及其邻接节点(红色)。这里还需要保存邻接的两个顶点,在A*寻路时很有用。在这里你可以自己弄一下关于阶梯和跳越的连接,提示,把节点投影到xz检查节点的相邻性,不过这里对于两个节点高度差太大那么忽略,阶梯是可以直接抬脚走所有你要设定抬脚的最大高度和跳跃的最大高度。
下图是其它连接的加入:抬脚的连接、跳跃的连接
这里黑色是当前节点,红色是邻接节点,深蓝色是抬脚连接的节点
这里包含了跳跃和直接相邻连接,黑色是当前节点,红色是直接相邻的节点,蓝色是跳跃的连接节点
这是加入物体的原始情况
现在暂不说寻路,现在目地是在有新的物体加入世界怎么去获取分裂节点并分裂。我这里使用的是遍历每一个节点,计算节点AABB(适当拉伸)与新加物体AABB的碰撞情况,注意假如AABB高度相对于节点高度(节点内所有顶点高度的平均值)较高(例如可以蹲下走过去、可以站着走过去),那么不要分裂节点,假如AABB间有碰撞,那么分裂该节点,这里的方法可以是《真言》里的(这里会增加顶点数),也可以只取节点中点和每两个相邻顶点的三角形。我们用《真言》里的,当然《真言》里分裂节点时情况有点出入,这里我们要处理的情况是(1)节点面积太小而且节点和物体有碰撞,那么删掉节点(2)假如节点在物体AABB内,那么删掉(3)假如物体和在节点内或者节点和物体有相交,那么分裂。反复迭代,最后合并细碎节点
这是分裂节点后的图,这里没有合并细碎节点,合并的函数也是我们上面合并的函数,只要重新调用就可以合并很多小节点。
下面是几张AStar关于网格导航寻路的图
普通直接相邻连接寻路
这个是有阶梯的情况,当然由于一些节点的连接人工没有删掉所以有点问题(主要是自动生成连接时,没有考虑节点投影重合问题),但是删掉后就会有比较好的路径。
有跳跃连接的情况,注意这里的台阶都是很高的,他们的连接是跳跃的连接
感谢关注 Ithao123精品文库频道,是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 IThao123!
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
产品设计是互联网产品经理的核心能力,一个好的产品经理一定在产品设计方面有扎实的功底,本专题将从互联网产品设计的几个方面谈谈产品设计
随着国内互联网的发展,产品经理岗位需求大幅增加,在国内,从事产品工作的大部分岗位为产品经理,其实现实中,很多从事产品工作的岗位是不能称为产品经理,主要原因是对产品经理的职责不明确,那产品经理的职责有哪些,本专题将详细介绍产品经理的主要职责
IThao123周刊查看: 5951|回复: 11
请教,现在哪个导航支持电子罗盘,就是转动手机,车标会动的
综合发帖模板
适用系统(可多选):
Android2.3&WM&
支持分辨率(可多选):
资源分类(可多选):
& &rt,早在实用wm的garmin时候,在十字路口停下,就搞不清方向了,或者刚起步时,是分不清东南西北的,要跑一下才利用gps才能识别方向,不方便
现在手机都支持电子罗盘了,相hd2之类,google地图,支持电子罗盘,转动手机,里面车标会在地图中指示方向.但是google,baidu,都需要在线地图,浪费流量.
& && &除了这2个,请教各位,还有哪个导能离线航软件(像garmi,凯立德,城际通,道道通,高德之类)也支持静态电子罗盘功能,谢谢.
有安卓版的请吗,
& &要有安卓版的,新买手机就不用再留恋wm了,以前一直留恋的garmin,从来没实现过这功能,不知道是不是俺笨~
帮顶一下。
安卓这个大粪缸没用过
IOS版的高徳,美行支持电子罗盘
ios阿,兄弟们能否说下,wm,或者安卓系统的.ios太贵普通人玩不动了
用GPS来判断方向的估计都需要移动才能判断吧?
不动能判断方向的用指南针
手机有电子罗盘功能,你单独打开罗盘,转动手机,里面有指南针的.这个功能融合到导航软件里面去,就可以静止状态下,利用磁感应器,指示车标的车头方向了,不需要移动靠gps来定位,关键是要导航软件调用磁感应器相关数据才行.
& && &google地图好像就有这功能,还有ls兄弟说的,最新版的ios的高德.普通安卓,或者wm版的很少有,即使手机有罗盘硬件了
仅高德. 美行的导航版
谷歌 百度地图没有这功能吧
安卓的高德可能也支持。但也许不是高德导航,而是高德地图。参考此贴:
本帖最后由 nigejin 于
15:12 编辑
顶ls兄台,昨晚就看到那位仁兄,特意到高德导航网站,下载最新的安卓版是5.1版本的,装了后,地图还是用老的地图(地图太大,没来得及下),进去看,确定没有罗盘这个选项.
& & 搞不懂那位仁兄用的是什么版本的,这应该是高德软件,因为&版权所有那里,&是&高德软件有限公司&,跟我下的显示是一样的,就是就是不懂他怎么搞出来的,难道这根是ios版本吗?
& &安卓版的最新5.1叫大众版,里面没有,知道的同学指点下哦.哪怕导航软件不能转动车标的方向,就光显示个指南针在导航界面也行啊,真不懂这么重要的功能怎么没考虑到呢,理论上应该很容易的
&利用磁感应器&,支持楼主所说电子罗盘,那就需要机子硬件具备这个传感器,不是由地图软件来决定。
安卓下面悠悠支持,但是做得不好,不够灵敏和准确,能达到百度地图效果的那种还没有
我在WM手机上用小蜜蜂
Powered by我手机下载好几款导航软件gps能定位但车动导航箭头在原地不动有什_百度知道
我手机下载好几款导航软件gps能定位但车动导航箭头在原地不动有什
位置共享,实时路况等等现在国内可以导航的软件还是比较多的,简单给你介绍几个如街景地图、省流量现在国内的手机导航软件还是比较多的、210个城市的公交和近400个城市的自驾实时路况,可以使用卫星地图和由专业设备采集的腾讯街景地图用以查找更精确的位置和目标
观看街景地图服务覆盖城市的高清全景图像地点查询,地点查询、快速,周边查询:提供打车公交自驾多种路线查询
支持全国近200个城市的出租估价:快速灵活准确的定位
帮助用户在地图上找到所在的位置路线查询,手机用软件一定要找与手机兼容性好的软件腾讯地图导航就是一款所有智能手机都可以用的 兼容性很好定位精准,是唯一具备全球定位技术的国内导航产品免费语音导航 实时路况查询 语音导航 避免堵车 行驶最佳路线里面功能很强大哦,路线查询
其他类似问题
为您推荐:
其他1条回答
哦对了祝你路途愉快,交通信号灯啊,减速啊,天气啊,而且开启离线下载模式完全是零流量的,测距啊,你还可以使用腾讯地图找到很多对你有用的信息, 等等,改版后的腾讯地图很不错, 听我说没有用
你还是,有多远,都是语音提示的,还有街景啊,它支持全程联网,还会显示需要的时间啊,
好了现在腾讯地图派上用场了
你完全可以使用腾讯地图来查找你想去的地方
只要在起始输入你地点的名字
在终止输入你的地点名字
最近的路线就出来了,比如说你想去的地方但是又不知道怎么走亲可以在手机上安装导航啊
导航软件的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁今日论坛第 1 个签到,每日签到可得财富值+2,连续5天签到后再连续签到则每日可得财富值
+4,记得每天都来签到哦~
上一主题:
下一主题:
查看: 2364 | 回复: 3
日版5代7.11能GPS定位,导航也能定位,不能导航,关了重启又是新的定位地点,就不会动
UID 2787868
财富值 647
交易信用 0
积分/帖子:1141
连续签到天数:2
全部签到天数:169
注册时间:
手机型号:
状态: 离线
日版5代7.11能GPS定位,导航也能定位,不能导航,关了重启又是新的定位地点,就不会动
日版5代7.11能GPS定位,导航也能定位,不能导航,关了重启又是新的定位地点,就不会动,什么情况。[s:27]
当年N95一上市跑去买了,3-4个月后才注册,N82拖箱等待复役,10-08-80-N70-N72-N73-N95-N82-N76-ZTE V880-U880-LG P970-IPHONE4-4S-5-三星S3-5S-三星S4 2-i6+n82
财富值 677
交易信用 0
积分/帖子:885
连续签到天数:1
全部签到天数:127
注册时间:
手机型号:
状态: 离线
从新下载个试试 试试高德
UID 2787868
财富值 647
交易信用 0
积分/帖子:1141
连续签到天数:2
全部签到天数:169
注册时间:
手机型号:
状态: 离线
回复 #2 whf0618 的帖子
试了,重新下载也不行,所有导航都试了,联网络的就行,也设置了语言区域都不行
当年N95一上市跑去买了,3-4个月后才注册,N82拖箱等待复役,10-08-80-N70-N72-N73-N95-N82-N76-ZTE V880-U880-LG P970-IPHONE4-4S-5-三星S3-5S-三星S4 2-i6+n82
财富值 677
交易信用 0
积分/帖子:885
连续签到天数:1
全部签到天数:127
注册时间:
手机型号:
状态: 离线
导航肯定是要联网 不联网可以导航的需要越狱后 记得论坛里好像有
微信扫一扫关注dospy

我要回帖

更多关于 生成导航网格 的文章

 

随机推荐