一种在3D中使用寻路的方法,无需光线投射和多个目标 我现在正在C++中的DirectX引擎上做游戏。我正在使用路径查找来引导一大群士兵到达一个特定的位置。问题是,我使用光线投射来查看我的路径中是否没有任何东西,这会降低游戏的速度。有更好的寻路方法吗

一种在3D中使用寻路的方法,无需光线投射和多个目标 我现在正在C++中的DirectX引擎上做游戏。我正在使用路径查找来引导一大群士兵到达一个特定的位置。问题是,我使用光线投射来查看我的路径中是否没有任何东西,这会降低游戏的速度。有更好的寻路方法吗,c++,algorithm,graphics,directx,path-finding,C++,Algorithm,Graphics,Directx,Path Finding,我的军队的调动也有问题。现在我用士兵的平均位置作为起点,这意味着所有的士兵在到达终点之前都需要先到达那里。有没有办法让他们走到终点而不去起点 谢谢你的帮助。你试过类似A-Star的东西吗?要通过节点或地图的某种二维阵列表示进行导航?写得很好,它可以更快更容易地处理作业(多线程) 如果你有一个士兵,他在a位置,需要去B。 只需计算从C(平均位置)到B的路径。获得从a到B的方向,并进行某种插值。(还没有这样做,也没有尝试过,但可能效果不太好!)在进行光线投射时,您是否测试了每个对象 当你有很多物品和

我的军队的调动也有问题。现在我用士兵的平均位置作为起点,这意味着所有的士兵在到达终点之前都需要先到达那里。有没有办法让他们走到终点而不去起点


谢谢你的帮助。

你试过类似A-Star的东西吗?要通过节点或地图的某种二维阵列表示进行导航?写得很好,它可以更快更容易地处理作业(多线程)

如果你有一个士兵,他在a位置,需要去B。
只需计算从C(平均位置)到B的路径。获得从a到B的方向,并进行某种插值。(还没有这样做,也没有尝试过,但可能效果不太好!)

在进行光线投射时,您是否测试了每个对象

当你有很多物品和士兵时,这可能非常昂贵。 一种常见的解决方案是将世界划分为方形网格单元,并将每个对象放入该网格的对象列表中


然后,你画一条从士兵到目的地的假想线,并检查每个单元你需要打击的对象。这样,您将只计算接近直线路径的对象,而忽略所有其他对象

更多细节会有所帮助。听起来你在使用3D光线投射为你的士兵寻找2D地面路径;这是真的吗?您的导航模型需要有多详细?你在多大范围内进行寻路?还有,你试过什么?