2010-05-28 131 views
2

我正在与physx(尝试添加ik到布娃娃)此刻。出于某种原因,所有布娃娃关节都是无摩擦的,结果,布娃娃往往会“摆动”,特别是当它悬挂在空中并与多个移动的运动员相连时。PhysX:关节摩擦/“僵硬”关节

我想增加关节的摩擦力,使它们“僵硬”。设想一个需要多次打开的门(具有非常生锈的铰链) - 即它围绕铰链旋转但不是很快,快速停止,并且需要较大的力来使其旋转。 或想想艺术人体模型(请参阅谷歌图片中的图片) - 他们的四肢四处移动,但他们不会自由摆动。

不幸的是,我在physx中找不到与关节摩擦有关的任何东西。我检查过文档,谷歌和头文件,并且找不到任何有用的东西。

那么,我该如何使用physx实现刚性关节/关节摩擦呢? (我认为)我已经看到没有这个问题的Physx游戏,所以显然应该有一些方法来做到这一点。

P.S.我不是在说这里的联合/求解器不稳定。布娃娃是稳定的(或多或少),关节的荣誉自由度(关节限制),但关节没有摩擦,我想增加他们的摩擦力。

回答

1

我问一个问题,关于NVIDIA的论坛最近这可能与此有关:link

不幸的是我没有得到一个真正的答案我的问题,但设法做我想做的事,使用如果只增加一个没有弹簧常数的阻尼常数,关节中的弹簧可以帮助您。这适用于我的情况,但我无法解释为什么所以尽管我很乐意使用它,但我并不完全确定是否推荐它。

我不知道你是否也可以将角度阻尼添加到布娃娃的所有单个部分,这将使他们在开始移动后更快地减速,但看起来可能不正确。可能是你必须尝试的那些东西之一。

+0

嗯,阻尼工作。在极限和接头处设置高的阻尼弹簧强度很好地适用于公转/ d6接头,在球形接头上不太好。所以我终于得到了一个僵硬的布娃娃。传统意义上它不是摩擦,但它提供了相同的效果。它看起来像一个“无证的功能”,但我严重怀疑它将永远被打破 - 具有高阻尼和零强度的弹簧应该表现为这种方式。 – SigTerm 2010-05-28 17:01:27

+0

@SigTerm:令人欣慰的是,我的担忧是它可能会在未来的更新中被打破。很高兴它有一些帮助,如果不是你想要的。 – identitycrisisuk 2010-06-01 07:57:45

0

我发现this forum thread关于Physx中的摆动关节,不知道你是否看过它,但我希望它有帮助。

+0

不,这不是事实 - 布娃娃是稳定的,但我需要使它更加“僵硬”。我更新了问题。 – SigTerm 2010-05-28 12:31:23

0

你为什么不尝试:

d6Desc.swingDrive.driveType.raiseFlagMask(NX_D6JOINT_DRIVE_VELOCITY); d6Desc.swingDrive.forceLimit = 0.1f; d6Desc.twistDrive.driveType.raiseFlagMask(NX_D6JOINT_DRIVE_VELOCITY); d6Desc.twistDrive.forceLimit = 0.1f; d6Desc.driveAngularVelocity.x = 0; d6Desc.driveAngularVelocity.y = 0; d6Desc.driveAngularVelocity.z = 0;

你用小的力量将速度驱动到0,这样移动就会减少,你将停止在地板上移动。这不完全像摩擦但接近。