Fix T40149: cycles motion blur render problem with multiple render layers.

This commit is contained in:
2014-05-12 18:36:01 +02:00
parent 70303dfefe
commit 1b1b71f697
3 changed files with 10 additions and 2 deletions

View File

@@ -616,6 +616,11 @@ void BlenderSync::sync_mesh_motion(BL::Object b_ob, Object *object, float motion
mesh_motion_synced.insert(mesh); mesh_motion_synced.insert(mesh);
/* ensure we only motion sync meshes that also had mesh synced, to avoid
* unnecessary work and to ensure that its attributes were clear */
if(mesh_synced.find(mesh) == mesh_synced.end())
return;
/* for motion pass always compute, for motion blur it can be disabled */ /* for motion pass always compute, for motion blur it can be disabled */
int time_index = 0; int time_index = 0;

View File

@@ -446,7 +446,6 @@ void BlenderSync::sync_objects(BL::SpaceView3D b_v3d, float motion_time)
light_map.pre_sync(); light_map.pre_sync();
mesh_map.pre_sync(); mesh_map.pre_sync();
object_map.pre_sync(); object_map.pre_sync();
mesh_synced.clear();
particle_system_map.pre_sync(); particle_system_map.pre_sync();
motion_times.clear(); motion_times.clear();
} }
@@ -536,7 +535,6 @@ void BlenderSync::sync_objects(BL::SpaceView3D b_v3d, float motion_time)
scene->object_manager->tag_update(scene); scene->object_manager->tag_update(scene);
if(particle_system_map.post_sync()) if(particle_system_map.post_sync())
scene->particle_system_manager->tag_update(scene); scene->particle_system_manager->tag_update(scene);
mesh_synced.clear();
} }
if(motion) if(motion)

View File

@@ -142,8 +142,13 @@ void BlenderSync::sync_data(BL::SpaceView3D b_v3d, BL::Object b_override, void *
sync_film(); sync_film();
sync_shaders(); sync_shaders();
sync_curve_settings(); sync_curve_settings();
mesh_synced.clear(); /* use for objects and motion sync */
sync_objects(b_v3d); sync_objects(b_v3d);
sync_motion(b_v3d, b_override, python_thread_state); sync_motion(b_v3d, b_override, python_thread_state);
mesh_synced.clear();
} }
/* Integrator */ /* Integrator */