关节驱动分为线性驱动和角度驱动,对应例如:X Drive和Angular X Dirive。
可调整的参数都是三个:
Position Spring
Position Damper
Maximum Force
这几个参数作何解?文档语焉不详,经过查阅资料,有以下结论:
对线性驱动,有目标位置和目标速度两个目标。同样的,对于角度驱动,有目标角度和目标角速度两个目标。
NVIDIA PhysX的公式为:
force = spring * (targetPosition - position) + damping * (targetVelocity - velocity)
详见:https://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/Joints.html#drives
也就是说,【当前位置与目标位置的差异】,【当前速度与目标速度的差异】 共同决定了要施加的力,其中不仅是数值,还有方向。