gpt4 book ai didi

c++ - 如何使用顶点的测地线距离来平滑骨骼顶点权重?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:12:15 25 4
gpt4 key购买 nike

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

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

其中顶点ij是相对于顶点i而言的,m是邻居的数量顶点,W 是顶点的权重。

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

Wmj = Wj * (maxDistance - Dji)

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

因此 Wj 的平滑影响会减少(衰减)其顶点距离 (Dji)。当然,maxDistance 处的顶点不会有任何影响,可能需要作为 m 的一部分忽略。

这行得通吗?

最佳答案

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

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

关于c++ - 如何使用顶点的测地线距离来平滑骨骼顶点权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10918741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com