diff --git a/doc/classes/Viewport.xml b/doc/classes/Viewport.xml
index 1adde175aa4..c1018551871 100644
--- a/doc/classes/Viewport.xml
+++ b/doc/classes/Viewport.xml
@@ -246,6 +246,7 @@
If [code]true[/code], the viewport will use a unique copy of the [World] defined in [member world].
+
If [code]true[/code], the objects rendered by viewport become subjects of mouse picking process.
diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp
index ef92a88fadd..74680b195d0 100644
--- a/scene/main/viewport.cpp
+++ b/scene/main/viewport.cpp
@@ -3681,6 +3681,13 @@ Viewport::Viewport() {
local_input_handled = false;
handle_input_locally = true;
physics_last_id = 0; //ensures first time there will be a check
+
+ // Physics interpolation mode for viewports is a special case.
+ // Typically viewports will be housed within Controls,
+ // and Controls default to PHYSICS_INTERPOLATION_MODE_OFF.
+ // Viewports can thus inherit physics interpolation OFF, which is unexpected.
+ // Setting to ON allows each viewport to have a fresh interpolation state.
+ set_physics_interpolation_mode(Node::PHYSICS_INTERPOLATION_MODE_ON);
}
Viewport::~Viewport() {