Fix T40149: cycles motion blur render problem with multiple render layers.
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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 */
|
||||||
|
|||||||
Reference in New Issue
Block a user