Fix #35723: cycles motion blur rendering issue after recent optimizations to skip
some unneeded object syncing.
This commit is contained in:
parent
69e7fb6091
commit
a5f60e9337
@ -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();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user