导航网格和2D图片

寻找一些帮助/方向; 我正在编写一个插件来从我的游戏中的任何2D地图生成导航网,并且遇到了障碍。 为了解释,网格的三角形正在产生:

  1. 首先,在地图的“碰撞”层上使用行进平方(Marching Squares)algorithm。 多次传递提取在此图层上find的所有块“船体”。
  2. 完成后,我在步骤1生成的边上运行约束Delaunayalgorithm。
  3. (实际的寻路工作正常,使用星型和漏斗algorithm来获得最佳path,需要调整,但只是次要的东西)

现在,它第一次工作,技术上是完美的,除了当那些船体内有孔洞或可通行区域时。 这是国际海事组织的一个可行的scheme,地图可能会阻止其中的分区。

根据我对行进方块的理解,无论如何都不应该find内部轮廓,所以我想知道我是否在这里使用了正确的algorithm – 如果不是,我应该使用什么来计算碰撞产生的所有轮廓边瓷砖? 我进行的很多研究都是关于游行广场的,但是在这种情况下肯定是行不通的?

下面的图片希望能说明问题,如果我的解释不够:

图1显示了Marching Squares发现的“充满”的船体; 一切正常图2显示了一个类似的船体,但具有可通行区域(黑色)以及较小的碰撞区域/边缘

有什么想法吗?

演示丢失的多边形数据