如何利用顶点的测地线距离平滑骨骼-顶点权重?

4

我正在研究一种实现骨骼-顶点权重平滑的方法(用于联合变形),但是无法找到使用用户设置的参数距离内的地球面距离(表面)在顶点之间的方法。


目前为止,有人提到可能使用Dijkstra算法获取近似的地球面距离 - 但它在某些类型的网格拓扑上存在局限性。


唯一发现的关于此问题的论文(所谓的“骨骼-顶点权重平滑”)使用Laplacian权重平滑技术对皮肤网格进行权重平滑,但仅考虑每个顶点的一环邻居,这无法满足我的需求,即包含距离最短的地球面距离的顶点:

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

这里给定顶点i和顶点j,它们与顶点i的关系被考虑在内,m是相邻顶点的数量,W是顶点的权重。

我的想法是修改拉普拉斯平滑算法,在考虑距离参数的范围内,所有发现的顶点都将被使用,但是距离也需要作为一个因素。也许只需通过参数距离减去当前顶点和求和中使用的顶点之间的距离来乘以权重影响力。可能是这样:

Wmj = Wj * (maxDistance - Dji)

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

这样可以减少平滑作用(衰减)的影响,通过其顶点距离(Dji)降低Wj的影响。当然,在maxDistance处的顶点将没有影响,可能需要将其忽略作为m的一部分。

这样行吗?


1
这个问题可能更适合发到 http://math.stackexchange.com/ 上面。 - Björn Pollex
1个回答

2
我首先想到的是投影。从起点到终点(穿过网格)的欧几里得距离形成一条线,将其投影到网格上。但我意识到在某些情况下这种方法行不通。举个例子,如果起点在一个深坑的一侧,目标在另一侧,那么最短距离应该是沿着边缘而不是直线通过。根据您所处理的网格类型,这种方法可能仍然足够,因此如果您满意,我可以详细介绍这个方法。
然后我的想法是进行细分,然后使用搜索。我将使用自适应细分,即分裂边缘,直到所有边缘都小于某个阈值。从那时起,您可以使用Dijkstra,A*或任何其他搜索方法。这样可以避免出现细长三角形的问题,因为边缘将被细分直到它们变小,因此不会出现长而细的边缘。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接