mirror of
https://thingvellir.net/git/overte
synced 2025-03-27 23:52:03 +01:00
smooth hold action velocity over 2 frames
This commit is contained in:
parent
29ce1d50ae
commit
28d4d29bb6
2 changed files with 8 additions and 1 deletions
|
@ -107,8 +107,12 @@ void AvatarActionHold::doKinematicUpdate(float deltaTimeStep) {
|
|||
withWriteLock([&]{
|
||||
if (_kinematicSetVelocity) {
|
||||
if (_previousSet) {
|
||||
glm::vec3 positionalVelocity = (_positionalTarget - _previousPositionalTarget) / deltaTimeStep;
|
||||
// smooth velocity over 2 frames
|
||||
glm::vec3 positionalDelta = _positionalTarget - _previousPositionalTarget;
|
||||
glm::vec3 positionalVelocity = (positionalDelta + previousPositionalDelta) / (deltaTimeStep + previousDeltaTimeStep);
|
||||
rigidBody->setLinearVelocity(glmToBullet(positionalVelocity));
|
||||
previousPositionalDelta = positionalDelta;
|
||||
previousDeltaTimeStep = deltaTimeStep;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -46,6 +46,9 @@ private:
|
|||
bool _previousSet { false };
|
||||
glm::vec3 _previousPositionalTarget;
|
||||
glm::quat _previousRotationalTarget;
|
||||
|
||||
float previousDeltaTimeStep = 0.0f;
|
||||
glm::vec3 previousPositionalDelta;
|
||||
};
|
||||
|
||||
#endif // hifi_AvatarActionHold_h
|
||||
|
|
Loading…
Reference in a new issue