[Bf-blender-cvs] [62811c3ba17] master: Fix T63211: Can't move camera in viewport while realtime render mode on

Sergey Sharybin noreply at git.blender.org
Tue Apr 2 11:44:30 CEST 2019


Commit: 62811c3ba17a96c41803c69a515f02531330e3a1
Author: Sergey Sharybin
Date:   Tue Apr 2 11:38:55 2019 +0200
Branches: master
https://developer.blender.org/rB62811c3ba17a96c41803c69a515f02531330e3a1

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.

===================================================================

M	source/blender/draw/engines/eevee/eevee_motion_blur.c

===================================================================

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 */



More information about the Bf-blender-cvs mailing list