Frage

Ich arbeite mit PhysX (versuchen zu ragdoll hinzufügen ik) im Moment. Aus irgendeinem Grunde alle ragdoll Gelenke sind reibungsfrei, und als Ergebnis, ragdoll neigen dazu, „Wobble“, vor allem, wenn es in der Luft hängt und an mehrere beweglichen kinematischen Akteure verbunden ist.

Ich möchte die Reibung an den Gelenken hinzufügen und „steif“ machen. Stellen Sie sich eine Tür (mit extrem rostigem Scharniere), dass der Bedarf mehrmals getreten werden, offen zu sein - das heißt, es das Scharnier dreht sich um, aber nicht viel, schnell beendet und große Kraft erforderlich ist, um es zu drehen. Oder denken Sie über Kunst manikins (siehe Google Bilder für Bilder.) - ihre Glieder bewegen, aber sie schwingen nicht um frei

Leider kann ich nichts gemeinsame Reibung in physx Zusammenhang finden. Ich habe überprüft, Dokumentation, Google und Header, und kann nichts nützlich finden.

So, wie ich steife Gelenke / Gelenk Reibung mit physx implementieren? (Glaube ich) Ich habe, ohne dieses Problem physx Spiele gesehen, also anscheinend sollte es eine Möglichkeit, das zu tun.

P. S. Ich spreche nicht über Gelenk- / Löser Instabilität hier. Ragdoll ist stabil (mehr oder weniger) und Gelenke ehren Freiheitsgraden (Gelenkgrenzen), aber Gelenke haben keine Reibung, und ich möchte die Reibung zu ihnen hinzuzufügen.

War es hilfreich?

Lösung

Ich habe eine Frage an den nvidia-Foren vor kurzem gefragt, die im Zusammenhang mit diesem werden: link

Leider habe ich keine wirkliche Antwort auf meine Fragen bekommen, aber geschafft, zu tun, was ich tun will, eine Feder in der gemeinsamen Macht Hilfe bei der Verwendung Sie hier, wenn Sie nur eine Dämpfungskonstante ohne Federkonstante hinzufügen. Dies funktioniert in meinem Fall, aber ich kann nicht, warum so erklären, während ich bin glücklich, es zu benutzen, ich bin mir nicht ganz sicher, ob es empfehlen.

Ich weiß nicht, ob Sie auch Winkel hinzufügen könnten, um alle einzelnen Teile der ragdoll Dämpfung, das würde sie langsam schneller machen, nachdem sie begonnen haben zu bewegen, aber es könnte nicht richtig aus. Wahrscheinlich eines dieser Dinge, die Sie mit experimentieren.

Andere Tipps

Ich fand diese Forum-Thread über wackelige Gelenke in Physx, weiß nicht, ob Sie haben es gesehen, aber ich hoffe, es hilft.

Warum versuchen Sie nicht, dass:

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;

Sie fahren die Geschwindigkeit auf 0 mit einer kleinen Kraft, auf diese Weise die Bewegung reduziert wird und Sie objets wird bewegt auf dem Boden zu stoppen. Es ist nicht genau wie Reibung, aber in der Nähe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top