diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-04-02 12:38:55 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-04-02 12:38:55 +0300 |
commit | 62811c3ba17a96c41803c69a515f02531330e3a1 (patch) | |
tree | 4bd3019526656121ae2edc47fa88356c0caaec07 /source/blender/draw/engines/eevee/eevee_motion_blur.c | |
parent | 0a2e59a7269c573113449654c61bdf6656a3c430 (diff) |
Fix T63211: Can't move camera in viewport while realtime render mode on
The issue is that Eevee directly evaluates animation on a datablock which
is a part of active dependency graph.
This is a broken logic by design and requires a complete revamp to support
more real life cases when camera is parented to a camera rig, but it is
beyond of what i can do with a simple bugfix.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_motion_blur.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_motion_blur.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_motion_blur.c b/source/blender/draw/engines/eevee/eevee_motion_blur.c index 70db2adedbf..bc3e4b35936 100644 --- a/source/blender/draw/engines/eevee/eevee_motion_blur.c +++ b/source/blender/draw/engines/eevee/eevee_motion_blur.c @@ -61,6 +61,12 @@ static void eevee_motion_blur_camera_get_matrix_at_time( Camera camdata_cpy = *(Camera *)(camera->data); cam_cpy.data = &camdata_cpy; + /* Reset original pointers, so direct evaluation does not attempt to flush + * animation back to the original object: otherwise viewport with motion + * blur enabled will always loose non-keyed changes. */ + cam_cpy.id.orig_id = NULL; + camdata_cpy.id.orig_id = NULL; + const DRWContextState *draw_ctx = DRW_context_state_get(); /* Past matrix */ |