@@ -352,15 +352,18 @@ private void TryConsumeFromBuffer(double renderTime, double minDeltaTime, double
352352 InterpolateState . Target = target ;
353353
354354 alreadyHasBufferItem = true ;
355+ InterpolateState . CurrentValue = target . Item ;
355356 InterpolateState . PredictValue = InterpolateState . CurrentValue ;
356357 InterpolateState . PreviousValue = InterpolateState . CurrentValue ;
357358 InterpolateState . Phase1Value = InterpolateState . CurrentValue ;
358359 InterpolateState . Phase2Value = InterpolateState . CurrentValue ;
359360 InterpolateState . SetTimeToTarget ( minDeltaTime ) ;
360361 InterpolateState . TimeToTargetValue = minDeltaTime ;
361362 startTime = InterpolateState . Target . Value . TimeSent ;
362- InterpolateState . TargetReached = false ;
363+ InterpolateState . TargetReached = true ;
363364 InterpolateState . PredictingNext = false ;
365+ InterpolateState . LerpT = 1.0f ;
366+ InterpolateState . LerpTPredict = 1.0f ;
364367 InterpolateState . MaxDeltaTime = maxDeltaTime ;
365368 }
366369 else
@@ -442,9 +445,9 @@ internal T Update(float deltaTime, double tickLatencyAsTime, double minDeltaTime
442445 //InterpolateState.PreviousValue = SmoothDamp(InterpolateState.PreviousValue, InterpolateState.Target.Value.Item, ref m_RateOfChange, (float)InterpolateState.TimeToTargetValue, (float)InterpolateState.DeltaTime);
443446 //var predictedTime = InterpolateState.PredictingNext ? InterpolateState.DeltaTime : Math.Min(InterpolateState.TimeToTargetValue, InterpolateState.DeltaTime + InterpolateState.AverageDeltaTime);
444447 //InterpolateState.PredictValue = SmoothDamp(InterpolateState.PredictValue, InterpolateState.PredictTarget, ref m_PredictedRateOfChange, (float)InterpolateState.TimeToTargetValue, (float)predictedTime);
445- InterpolateState . PreviousValue = SmoothDamp ( InterpolateState . CurrentValue , InterpolateState . Target . Value . Item , ref m_RateOfChange , ( float ) InterpolateState . TimeToTargetValue , ( float ) InterpolateState . DeltaTime ) ;
448+ InterpolateState . PreviousValue = SmoothDamp ( InterpolateState . PreviousValue , InterpolateState . Target . Value . Item , ref m_RateOfChange , ( float ) InterpolateState . TimeToTargetValue , ( float ) InterpolateState . DeltaTime ) ;
446449 var predictedTime = InterpolateState . PredictingNext ? InterpolateState . DeltaTime : Math . Min ( InterpolateState . TimeToTargetValue , InterpolateState . DeltaTime + InterpolateState . AverageDeltaTime ) ;
447- InterpolateState . PredictValue = SmoothDamp ( InterpolateState . PreviousValue , InterpolateState . Target . Value . Item , ref m_PredictedRateOfChange , ( float ) InterpolateState . TimeToTargetValue , ( float ) predictedTime ) ;
450+ InterpolateState . PredictValue = SmoothDamp ( InterpolateState . PredictValue , InterpolateState . Target . Value . Item , ref m_PredictedRateOfChange , ( float ) InterpolateState . TimeToTargetValue , ( float ) predictedTime ) ;
448451 // Determine if smooth dampening is enabled to get our lerp "t" time
449452 var timeDelta = lerpSmoothing ? deltaTime / MaximumInterpolationTime : deltaTime ;
450453 // Lerp between the PreviousValue and PredictedValue using the calculated time delta
0 commit comments