Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDalai Felinto <dfelinto@gmail.com>2016-11-18 20:23:45 +0300
committerDalai Felinto <dfelinto@gmail.com>2016-11-18 20:23:52 +0300
commit0f8e5f4fb463289be1b69b1cb5eaad495ae720c6 (patch)
treed2bdd5876f55d00a43eaeedce3181194b4d7b8dc /intern/cycles/blender
parentba7c11aa055f01f9a3cdcec07fea8fb7355b0e95 (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.cpp10
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();