基于位置的动力学示例(Matthias Müller)[关闭]

Posted

技术标签:

【中文标题】基于位置的动力学示例(Matthias Müller)[关闭]【英文标题】:Position based dynamics example (Matthias Müller) [closed] 【发布时间】:2011-07-27 21:50:08 【问题描述】:

我想知道是否有人有基于位置的动态的代码示例,即弹簧约束?我发现这篇论文描述了包含一些伪代码的技术,但我希望看到一些 java/c/c++/as/... 代码

http://www.matthiasmueller.info/publications/hpbd.pdf

【问题讨论】:

“弹簧约束”?在 PBD 的语言中,弹簧不是约束,它是 f_ext 的一部分。到目前为止,您尝试过哪些编码? @Beta 并非完全如此。在 PBD 模型中,通过将通常的弹簧力替换为弹簧或拉伸“约束”来实现特定的类似弹簧的行为,尽管该约束可能仅部分/部分地强制执行以近似具有弹性的类似弹簧的行为。例如,Muller 的原始纸模型布料使用布料顶点之间的这种约束(图 3)。弹簧的强度使用与迭代相关的伪刚度参数 k 处理,该参数回拨约束投影(参见第3.3). 您至少应该阅读论文并尝试理解数学并尝试一些代码,这是您学习最多的唯一方法。 【参考方案1】:

如 Thomas Jakobsen (http://www.gamasutra.com/resource_guide/20030121/jacobson_01.shtml) 和 Matthias Mueller 的论文链接所述,开源 Bullet 物理库中的软体(和布料/绳索)模拟使用基于位置的动力学。

有关 C++ 源代码,请参阅 http://bullet.googlecode.com。

【讨论】:

实际上,Jakobsen 的 Hitman 1 引擎可能不是第一个使用这个想法的。 Xavier Provost 在 1995 年开发布料模拟器时可能实际上使用过【参考方案2】:

谷歌代码上有一个更新的源代码,它更直接地实现了这个想法。它被称为OpenCloth 项目,它确实是一个非常棒的各种方法的集合,它整齐而简单地实现了。

【讨论】:

【参考方案3】:

Processing 有各种physics 和粒子系统libraries,它们使用Java。

编辑:我想我之前误解了这个问题,但here 是有人试图对穆勒的方法进行编码。

【讨论】:

以上是关于基于位置的动力学示例(Matthias Müller)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

降维LLE与其他降维技术

为啥 Münster 编译器认为跨 ++ 的模式匹配是不确定的?

恭喜PBD终于有了自己的物理解释和模型

局部线性嵌入(LLE)原理总结

局部线性嵌入(LLE)原理总结

练习题