Fix #123207: EEVEE: Disable motion blur on camera change
Pull Request: https://projects.blender.org/blender/blender/pulls/123919
This commit is contained in:
parent
0255be9b22
commit
2b248d2720
@ -81,6 +81,7 @@ void Camera::init()
|
||||
overscan = inst_.scene->eevee.overscan / 100.0f;
|
||||
}
|
||||
overscan_changed_ = assign_if_different(overscan_, overscan);
|
||||
camera_changed_ = assign_if_different(last_camera_object_, inst_.camera_orig_object);
|
||||
}
|
||||
|
||||
void Camera::sync()
|
||||
|
@ -104,6 +104,9 @@ class Camera {
|
||||
bool overscan_changed_;
|
||||
/** Whether or not the camera was synced from a camera object. */
|
||||
bool is_camera_object_ = false;
|
||||
/** Just for tracking camera changes, use Instance::camera_orig_object for data access. */
|
||||
Object *last_camera_object_ = nullptr;
|
||||
bool camera_changed_ = false;
|
||||
|
||||
public:
|
||||
Camera(Instance &inst, CameraData &data) : inst_(inst), data_(data){};
|
||||
@ -160,6 +163,10 @@ class Camera {
|
||||
{
|
||||
return overscan_changed_;
|
||||
}
|
||||
bool camera_changed() const
|
||||
{
|
||||
return camera_changed_;
|
||||
}
|
||||
|
||||
private:
|
||||
void update_bounds();
|
||||
|
@ -133,7 +133,7 @@ void MotionBlurModule::sync()
|
||||
/* Disable motion blur in viewport when changing camera projection type.
|
||||
* Avoids really high velocities. */
|
||||
if (inst_.velocity.camera_changed_projection() ||
|
||||
(inst_.is_viewport() && inst_.camera.overscan_changed()))
|
||||
(inst_.is_viewport() && (inst_.camera.overscan_changed() || inst_.camera.camera_changed())))
|
||||
{
|
||||
motion_blur_fx_enabled_ = false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user