I know the issue is a bit older but as I stumbled upon this thread others will surely too in the future, so I’m documenting my solution in case someone ends up having my same issue.
My camera3D was exhibiting jitters, which in the end was caused by something else completely. I implemented a dead zone in my camera, but my logic was faulty and caused the camera to shift slightly opposite to the player’s travelling direction when the player stopped. In my code I track a target position for the camera to lerp to and my fix was to make sure that the final target position, would leave the player inside the deadzone, as not to cause a new target position to be re-calculated.
I was experiencing this issue with a Camera2D tracking a RigidBody2D and I was able to fix it by enabling Project → Project Settings → Physics → Common → Physics Interpolation.
This problem usually happens due to a difference between monitor’s refresh rate and physics process tick’s per second. If they are not the same, a lot of things can appear jittery.
One way of solving this issue is simply either changing the Project Settings → Physics → Common → Physics Ticks per Second, to match your monitor’s refresh rate. Or the other way around, changing monitor’s refresh rate to match this setting.
However, there is also Project Settings → Physics → Common → Physics Interpolation setting, which also solves this issue, but it’s probably more resource intensive.
For those using physics interpolation who encounter this in the future or find this from a search engine, something to be aware of is that physics interpolation is disabled by default on all Control nodes and their descendants. For example, if you have this scene hierarchy:
Control
CharacterBody2D
…then the CharacterBody2D will be unaffected by your project-level physics-interpolation setting until you explicitly change physics_interpolation_mode on it (or reparent it).
Just like how Control nodes have interpolation off by default, SubViewport has physics_interpolation_modeon by default, so you can run into the opposite problem where interpolation is on when you don’t want it to be.