2009-02-17 122 views
2

我有不同的物体,其表面是3D和非矩形的,例如球体,金字塔和其他各种由网格物体表示的物体。网格不是由物体表面上相同大小和分布的多边形组成的,也不是像圆柱体,球体和圆锥体的理想形状那样的半/对称物体。寻找任意非矩形体

因此,我将如何去设计或改造一个寻找任意网格和生成节点的寻路算法,这些算法可以通过多种方式自行环绕?

回答

2

一个(可能是最简单的)选项是使用基于网格的搜索技术---有一些非常简单的方法来生成多分辨率网格分解,将单元格标记为“空闲”或“碰撞”并使用搜索结果网格像A *(如Theran提到)。

通常,您可能需要使用更强大的运动计划技术,例如probabilistic roadmaps(PRM)或Rapidly-exploring Random Trees(RRT)。在这些领域有相当多的学术工作。

作为介绍,您可能想查看一份调查报告,如this one(PDF)。

0

A *搜索应该在这个应用程序中工作得很好。它需要一个不会高估两点之间距离的函数,但直线距离永远不会高估沿着曲面的距离。

+1

这里的问题是,如果我将节点放置在网格之外,将节点移动到节点的成本将不规则。例如,如果我用四边形制作一个球体,那么极点上的四边形比那些在赤道上的四边形更小和更接近,即使从优化视图来看也是如此。 – 2009-02-17 09:05:51

+0

不规则间距的问题很容易通过使较长的部分更昂贵来解决。使用细分的二十面体可解决球体上不均匀的四边形间距问题。如果你有一些非常大的多边形,你会想要添加额外的节点,这样你的AI就可以跨越角落。 – Theran 2009-02-17 14:24:56

0

我意识到,你可能不会告诉我们这里的大图,并试图将你的问题归结为3D scene => directed graph => ??? => pathfind,但你有没有考虑从不同的方向接近这个?

有没有办法预先编写你的有向图?大多数游戏(我假设这是一个游戏)在构建搜索路径时不考虑场景中每个对象的完整几何体。也许还有另一种方式?

无论如何,您可能会发现this link对您的研究有用。