从步行点生成navmesh(3D)

时间:2016-01-08 01:56:10

标签: c# algorithm 3d triangulation navmesh

这是交易 - 我正在研究一种能够在几乎任何环境中生成导航网格的算法/库,在这种环境中我可以获得受控代理和/或同一静态内的其他代理的坐标环境。我唯一的输入是代理人去过的点集合。 (See the image here to hopefully understand what I mean)

我已经达到了可以手动创建导航并在其上导航的程度。但是,在较大的环境中,只有受控代理的坐标,手动执行它真的很乏味且耗时。

对我来说这种算法/库的用途是显而易见的,但我已经考虑了很多,所以我将列出一些我想要完成的事情:

  • 机器人技术(扫描环境,只能获得从自身到点的距离,从而获得坐标 - 无需复杂的图像/视频处理)
  • 通过探索能够导航未知和看不见的迷宫(任何形状或大小)的人工智能
  • 记录步行区域并为不知道某些地方的游戏创建AI,除非他们去过那里

现在你希望看到我正在寻找什么样的解决方案。

我尝试过几件事,但无法弄明白。我尝试过的最成功的事情之一是为每个单独的点(创建一个圆圈)提供一个范围,然后寻找具有重叠圆圈的地方 - 您很可能会在这些区域上移动。这种方法的问题始于三角区域。生成的网格可能有点不准确,但它必须能够无缝连接到网格的现有(“已发现”)部分(并非所有内容都必须以某种方式互连,因为代理可以消失并重新出现,但在合理的距离内,连接网格)。

更多信息:我在C#工作,尽管java,C ++ / C,Objective C,伪代码等解决方案同样可以接受。

P.S。我对所有答案都不感兴趣,比如“只使用这个库”或“使用其他语言/环境”等...我想要一个算法。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我可以帮助2D路径查找。你需要找到红色轮廓。然后你可以使用红色轮廓的voronoi图(不是代理点)。移除红色轮廓外的所有边缘,其余边缘可用于按某人/某物导航形状。阅读:http://www.cs.columbia.edu/~pblaer/projects/path_planner/