Fix #35723: cycles motion blur rendering issue after recent optimizations to skip

some unneeded object syncing.
This commit is contained in:
Brecht Van Lommel 2013-06-12 20:47:48 +00:00
parent 69e7fb6091
commit a5f60e9337
2 changed files with 8 additions and 4 deletions

@ -102,12 +102,16 @@ void BlenderSession::create_session()
/* create sync */
sync = new BlenderSync(b_engine, b_data, b_scene, scene, !background, session->progress, session_params.device.type == DEVICE_CPU);
/* for final render we will do data sync per render layer */
if(b_v3d) {
/* full data sync */
sync->sync_data(b_v3d, b_engine.camera_override());
sync->sync_view(b_v3d, b_rv3d, width, height);
}
else {
/* for final render we will do full data sync per render layer, only
* do some basic syncing here, no objects or materials for speed */
sync->sync_render_layers(b_v3d, NULL);
sync->sync_integrator();
sync->sync_camera(b_render, b_engine.camera_override(), width, height);
}
@ -373,8 +377,8 @@ void BlenderSession::render()
scene->integrator->tag_update(scene);
/* update scene */
sync->sync_data(b_v3d, b_engine.camera_override(), b_rlay_name.c_str());
sync->sync_camera(b_render, b_engine.camera_override(), width, height);
sync->sync_data(b_v3d, b_engine.camera_override(), b_rlay_name.c_str());
/* update number of samples per layer */
int samples = sync->get_layer_samples();

@ -56,6 +56,8 @@ public:
/* sync */
bool sync_recalc();
void sync_data(BL::SpaceView3D b_v3d, BL::Object b_override, const char *layer = 0);
void sync_render_layers(BL::SpaceView3D b_v3d, const char *layer);
void sync_integrator();
void sync_camera(BL::RenderSettings b_render, BL::Object b_override, int width, int height);
void sync_view(BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int width, int height);
int get_layer_samples() { return render_layer.samples; }
@ -74,10 +76,8 @@ private:
void sync_objects(BL::SpaceView3D b_v3d, int motion = 0);
void sync_motion(BL::SpaceView3D b_v3d, BL::Object b_override);
void sync_film();
void sync_integrator();
void sync_view();
void sync_world(bool update_all);
void sync_render_layers(BL::SpaceView3D b_v3d, const char *layer);
void sync_shaders();
void sync_curve_settings();