diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2016-11-18 20:23:45 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2016-11-18 20:23:52 +0300 |
commit | 0f8e5f4fb463289be1b69b1cb5eaad495ae720c6 (patch) | |
tree | d2bdd5876f55d00a43eaeedce3181194b4d7b8dc /intern/cycles/blender | |
parent | ba7c11aa055f01f9a3cdcec07fea8fb7355b0e95 (diff) |
Cycles: Different noise seed for stereoscopic rendering (Fix #T50024)
Patch by Sergey Sharybin.
Diffstat (limited to 'intern/cycles/blender')
-rw-r--r-- | intern/cycles/blender/blender_session.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index c250a54f259..171153dd440 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -32,6 +32,7 @@ #include "util_color.h" #include "util_foreach.h" #include "util_function.h" +#include "util_hash.h" #include "util_logging.h" #include "util_progress.h" #include "util_time.h" @@ -498,7 +499,8 @@ void BlenderSession::render() scene->film->tag_update(scene); scene->integrator->tag_update(scene); - for(b_rr.views.begin(b_view_iter); b_view_iter != b_rr.views.end(); ++b_view_iter) { + int view_index = 0; + for(b_rr.views.begin(b_view_iter); b_view_iter != b_rr.views.end(); ++b_view_iter, ++view_index) { b_rview_name = b_view_iter->name(); /* set the current view */ @@ -514,6 +516,12 @@ void BlenderSession::render() &python_thread_state, b_rlay_name.c_str()); + /* Make sure all views have different noise patterns. - hardcoded value just to make it random */ + if(view_index != 0) { + scene->integrator->seed += hash_int_2d(scene->integrator->seed, hash_int(view_index * 0xdeadbeef)); + scene->integrator->tag_update(scene); + } + /* Update number of samples per layer. */ int samples = sync->get_layer_samples(); bool bound_samples = sync->get_layer_bound_samples(); |