首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用顶点的测地距离平滑骨骼-顶点权重?

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

Stack Overflow用户
提问于 2012-06-07 01:00:33
回答 1查看 494关注 0票数 4

我目前正在研究一种实现骨骼顶点权重(关节变形的蒙皮权重)平滑的方法,但在用户设置的参数距离内使用顶点之间的测地线(曲面)距离的方法却一无所获。

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

我在这个问题上找到的唯一一篇论文(所谓的“骨顶点权重平滑”)使用了蒙皮网格上的权重的拉普拉斯平滑,但它只考虑了每个顶点的单环相邻顶点,这不能满足我对顶点最大距离(最短测地距离)的需求:

代码语言:javascript
运行
复制
L(Wi) = 1/m * Sum(j from 0 to m-1)(Wj - Wi)

其中,顶点ij相对于顶点i进行考虑,m是相邻顶点数,W是顶点上的权重。

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

代码语言:javascript
运行
复制
Wmj = Wj * (maxDistance - Dji)

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

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

这样行得通吗?

EN

回答 1

Stack Overflow用户

发布于 2012-06-16 04:41:01

我想到的第一个想法是投影。首先获取表示起点和终点之间的欧几里德距离的直线(穿过网格)。然后将其投影到网格上。但我意识到这在某些情况下是行不通的。为了其他人的利益,一种这样的情况是,如果起点是深坑的一侧,而目标在相反的一侧,那么最短的距离应该是在边缘周围,而不是直接穿过。根据你正在使用的网格类型,这可能对你来说仍然足够了,所以如果这对你来说足够好的话,我可以沿着这些路线详细阐述更完整的方法。

因此,我的想法是细分,然后使用搜索。我会使用自适应细分,即分割边缘,直到所有边缘都小于某个阈值。在这一点上,您可以使用Dijkstra,或A*或任何其他数量的搜索方法。这绕过了瘦三角形的问题,因为边将被细分,直到它们变小,因此不会有长的瘦边。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10918741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档