Cycles: Different noise seed for stereoscopic rendering (Fix #T50024)

Patch by Sergey Sharybin.
This commit is contained in:
Dalai Felinto
2016-11-18 18:23:45 +01:00
parent ba7c11aa05
commit 0f8e5f4fb4

View File

@@ -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();