-
-
Notifications
You must be signed in to change notification settings - Fork 21.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[3.x] Physics Interpolation - refactor Camera
and fix get_camera_transform()
#92784
Conversation
2cd5163
to
2b1136d
Compare
ca17713
to
b39ecd4
Compare
b39ecd4
to
77a490f
Compare
8039ff5
to
f803dee
Compare
…rm()` * Moves 3D Camera interpolation scene side. * Automatically switches `get_camera_transform()` to report interpolated transform during `_process()`. * Fixes `ClippedCamera` to work with physics interpolation.
f803dee
to
0b30d77
Compare
This is the MRP for the PR: However, as it uses physics tick counter, it relies on the physics tick counter bug being fixed (see #92941 ). It won't give correct behaviour without the fix. I'll see if I can create an MRP at later time that works around this bug. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The approach looks good and fixes issues.
Thanks! |
get_camera_transform()
to report interpolated transform during_process()
.ClippedCamera
to work with physics interpolation.VisualInstance
reset_physics_interpolation
transforms being out of date.Fixes issue mentioned in #92391 (comment)
Fixes issue mentioned in #92391 (comment)
This should fix the following
Camera
commands to work with physics interpolation:There is quite a bit of reset refactoring here to deal with moving reset bugs revealed in testing for #92391 .
Notable Changes
Teleport lists have been removed in favour of instantaneous teleport in
VisualServer
.This is possible because client code now flushes any dirty transforms prior to the reset.
Notes
Camera
moved in_process()
.Camera
parameters within_process()
.ClippedCamera
is supported, but will force physics process mode when interpolation is active (idle mode makes no sense), and shows a warning when forcing.InterpolatedCamera
is not supported (as deprecated).ARVRCamera
hopefully doesn't need any modifications (but not highly tested).Milestones
I originally scheduled this for 3.7 as we are in feature freeze now for 3.6, and although this is not a new feature, moving the
Camera
interpolation scene side is a significant refactor.However, on reflection, leaving this for 3.7 is going to be a logistical pain, as it fixes a number of significant interpolation bugs in 3.6, and we are finally getting significant testing as a result of this being kept in sync with the version in 4.x. It will also become problematic if we get 3.x and 4.x versions out of sync, as 3.x is the lead for physics interpolation, and @rburing will need this .
So it should be worth it to get in for the first 3.6 RC.