Interpolating multimeshes

Godot Version

4.3

Question

I’m making a shmup, and I decided to give PerfBullets. I’d also really like to support replays, so I’m using frame-dependent movement with the physics process function. I’m also using physics interpolation, with lawnjelly’s smoothing addon instead of the built-in interpolation. I got the built-in interpolation working eventually (SubViewportContainer has the physics interpolation mode set to Off by default, not Inherit, and that casued me to waste some time). The reason I went with the smoother addon was because built-interpolation was giving the player’s bullets a lot of jitter when the player moved. I might revisit the built-in approach, but for now the two addons are working together nicely… except for actually smoothing the bullets’ movement. The bullets are not interpolated at all, whether using the built-in interpolation or the smoother addon.

I actually haven’t used multimeshes before now (PerfBullets uses them), and I saw this note in the docs, but I’m not sure I fully understand. I was hoping the fix might be as simple as replacing a call to set_as_bulk_array() with set_as_bulk_array_interpolated(), but it seems that PerfBullets isn’t even using that function. My searching hasn’t turned up any more details, so I’m hoping that someone could give me a bit of assistance.

To sum up: Neither the built-in interpolation nor the smoothing addon are interpolating the PerfBullets multimesh instances. How can I modify the PerfBullets addon, or ideally just get the multimeshes interpolated in my own code, so that they can be smoothed over the rendering framerate.

Worst-case scenario, I can rewrite the addon. Or perhaps just force my game to render at the 60hz physics tick rate (which I’d really not like to do).

Thanks.

Well, I think I know why this is happening. It seems I missed the fact that GPU particles are not interpolated currently.

This issue is exactly what I’m experiencing. For now, I’ll continue testing without interpolation, but I’m definitely looking forward to interpolation being implemented for particles!