4

我目前正在研究一种实现骨骼顶点权重(关节变形的皮肤权重)平滑的方法,并且在用户设置的参数距离内使用顶点之间的测地线(表面)距离的方法上空无一物。
到目前为止,有人提到可能使用 Dijkstra 算法来获得近似测地线距离 - 但它对某些类型的网格拓扑有限制。
我在这个问题上找到的唯一一篇论文(所谓的“骨骼顶点权重平滑”)在蒙皮网格上使用拉普拉斯平滑权重,但它只考虑每个顶点的单环相邻顶点,这不满足我的需要包括一个距离(最短测地距离)的顶点:

L(Wi) = 1/m * Sum(j from 0 to m-1)(Wj - Wi)

其中 vertexij是相对于 vertex 考虑的im是相邻顶点的数量,并且W是顶点上的权重。

我所设想的是一种改进的拉普拉斯平滑,其中使用了所有发现在参数距离内的顶点,但距离也需要是一个因素。也许只是将权重影响乘以参数距离减去当前顶点与总和中使用的顶点之间的距离。像这样的东西,也许:

Wmj = Wj * (maxDistance - Dji)

L(Wi) = 1/m * Sum(j from 0 to m-1)(Wmj - Wi)

这样平滑的影响Wj会减少(衰减)其顶点距离(Dji)。当然,随意的顶点maxDistance没有影响,可能需要作为m.

这行得通吗?

4

1 回答 1

2

我想到的第一个想法是投影。首先获取代表起点和终点之间欧几里得距离的线(穿过网格)。然后将其投影到网格上。但我意识到这在某些情况下是行不通的。为了其他人的利益,这样的一种情况是,如果起点是深坑的一侧,而目标在另一侧,那么最短的距离将是在篮筐周围,而不是直通。这对您来说可能仍然足够,具体取决于您正在使用的网格类型,因此如果这对您来说足够好,我可以沿着这些思路详细说明更完整的方法。

所以我的想法是细分然后使用搜索。我会使用自适应细分,即分割边缘,直到所有边缘都小于某个阈值。从那时起,您可以使用 Dijkstra 或 A* 或任何其他数量的搜索方法。这解决了窄三角形的问题,因为边会被细分直到它们变小,所以不会有长而窄的边。

于 2012-06-15T20:41:01.053 回答