mirror of
https://github.com/SK8-ENGINE/skate-3-rust-engine.git
synced 2026-10-26 19:47:44 +00:00
Interpolate camera and skater presentation between fixed ticks
This commit is contained in:
1 parent
12ab6baa68
commit
1c8acbb010
7 files changed
+130
-18
No files matched your search
@@ -0,0 +1,24 @@
|
||||
# Render interpolation
|
||||
|
||||
The Bevy presentation layer retains two completed simulation snapshots and
|
||||
interpolates them with `Time<Fixed>::overstep_fraction()` in `Update`. Capture
|
||||
runs after the physics system on every fixed tick, including catch-up ticks.
|
||||
Frames without a new simulation tick still advance the interpolation fraction.
|
||||
|
||||
Snapshots contain the animation root, final physical skin hierarchy (including
|
||||
the board/trucks/wheels), and camera transform/FOV. Bone transforms are converted
|
||||
to skin-local transforms at each endpoint before translation/scale lerp and
|
||||
quaternion slerp. The root and camera use that same fraction. These rendered
|
||||
transforms are not read back by the native simulation or camera controllers.
|
||||
|
||||
Initialization, camera discontinuities, the existing camera-reset flag and
|
||||
simulation-period changes collapse the history to the newest snapshot. There
|
||||
is no boxcar camera filter, additional smoothing window, or extrapolation.
|
||||
Interpolation introduces one fixed interval of presentation delay (normally
|
||||
about 16.7 ms). This is a renderer feature, not a claim about retail behavior.
|
||||
|
||||
Reference: Bevy's official fixed-timestep presentation example:
|
||||
https://bevy.org/examples-webgpu/movement/physics-in-fixed-timestep/
|
||||
|
||||
Validation: `Build.ps1` succeeded; no automated or gameplay tests were run,
|
||||
as requested. Gameplay smoothness remains for the user to assess.
|
||||
Reference in new issue
Block a user