我目前正在与physx合作(尝试将ik添加到布娃娃)。由于某种原因,所有布娃娃关节都是无摩擦的,因此,布娃娃往往会“摇摆”,尤其是当它悬吊在空中并连接到几个运动的运动角色时。
我想增加关节的摩擦力并使它们“僵硬”。想象一下,一扇门(铰链非常使用rust )需要被踢几次才能打开-即它绕铰链旋转,但旋转不多,很快就停止了,需要很大的力才能使其旋转。
或考虑人体模型(请参阅Google图片以获取图片)-他们的四肢四处移动,但不能自由摆动。
不幸的是,我找不到与physx中的关节摩擦有关的任何东西。我检查了文档,谷歌和 header ,找不到有用的东西。
那么,如何在physx中实现刚性关节/关节摩擦? (我认为)我看过physx游戏没有这个问题,所以显然应该有一些方法可以做到这一点。
附言我不是在这里谈论关节/求解器的不稳定性。布娃娃是稳定的(或多或少),关节尊重自由度(关节极限),但是关节没有摩擦,我想给它们增加摩擦。
最佳答案
我最近在nvidia论坛上问了一个可能与此有关的问题:link
不幸的是,我没有真正回答问题,但是设法做到了我想做的事情,如果仅添加阻尼常数而不添加 Spring 常数,则在关节处使用 Spring 可能会对您有所帮助。这对我来说有效,但是我无法解释为什么这样做,尽管我很高兴使用它,但我不确定是否推荐它。
我不知道您是否还可以向布娃娃的所有各个部分添加 Angular 阻尼,这将使它们在开始移动后速度更快,但看起来可能不正确。您可能必须尝试其中的一件事。
关于c++ - PhysX:关节摩擦/“stiff”关节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2928834/