[Bf-blender-cvs] [4878b2d4ba] soc-2016-cycles_denoising: Cycles Denoising: Allow to ignore cross-denoising passes
Lukas Stockner
noreply at git.blender.org
Wed Feb 1 05:19:20 CET 2017
Commit: 4878b2d4baec3639eabb3728e3372a36efe4641e
Author: Lukas Stockner
Date: Sun Jan 29 04:17:27 2017 +0100
Branches: soc-2016-cycles_denoising
https://developer.blender.org/rB4878b2d4baec3639eabb3728e3372a36efe4641e
Cycles Denoising: Allow to ignore cross-denoising passes
===================================================================
M intern/cycles/blender/blender_session.cpp
M intern/cycles/render/denoising.cpp
M intern/cycles/render/session.cpp
M intern/cycles/render/session.h
===================================================================
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 5eb71857f9..f3df744fcc 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -1371,6 +1371,7 @@ void BlenderSession::denoise(BL::RenderResult& b_rr)
session->params.filter_strength = (filter_strength == 0.0f)? 1e-3f : copysignf(powf(10.0f, -fabsf(filter_strength)*2.0f), filter_strength);
session->params.filter_weight_adjust = powf(2.0f, b_s_layer.filter_weighting_adjust() - 1.0f);
session->params.filter_gradient = b_s_layer.filter_gradients();
+ session->params.filter_cross = b_s_layer.filter_cross() && session->buffers->params.cross_denoising;
session->start_denoise();
session->wait();
diff --git a/intern/cycles/render/denoising.cpp b/intern/cycles/render/denoising.cpp
index a5ce18c18b..7c6500bf93 100644
--- a/intern/cycles/render/denoising.cpp
+++ b/intern/cycles/render/denoising.cpp
@@ -237,6 +237,7 @@ bool denoise_standalone(SessionParams &session_params,
buffers->copy_to_device();
session->buffers = buffers;
+ session->params.filter_cross = buffers->params.cross_denoising;
session->start_denoise();
session->wait();
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp
index f4dd529dd6..45cc860c43 100644
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/render/session.cpp
@@ -809,7 +809,7 @@ void Session::run_denoise()
kernel_data.film.pass_stride = buffers->params.get_passes_size();
kernel_data.film.pass_denoising = buffers->params.get_denoise_offset();
kernel_data.film.pass_no_denoising = buffers->params.selective_denoising? kernel_data.film.pass_denoising+20 : 0;
- kernel_data.film.denoise_cross = buffers->params.cross_denoising;
+ kernel_data.film.denoise_cross = params.filter_cross;
kernel_data.film.exposure = 1.0f;
kernel_data.film.num_frames = buffers->params.frames;
kernel_data.film.prev_frames = params.prev_frames;
diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h
index bdd26715f7..f808b1e784 100644
--- a/intern/cycles/render/session.h
+++ b/intern/cycles/render/session.h
@@ -68,6 +68,7 @@ public:
float filter_weight_adjust;
bool filter_gradient;
int prev_frames;
+ bool filter_cross;
double cancel_timeout;
double reset_timeout;
@@ -102,6 +103,7 @@ public:
filter_weight_adjust = 1.0f;
filter_gradient = false;
prev_frames = 0;
+ filter_cross = false;
cancel_timeout = 0.1;
reset_timeout = 0.1;
@@ -131,6 +133,7 @@ public:
&& filter_strength == params.filter_strength
&& filter_weight_adjust == params.filter_weight_adjust
&& filter_gradient == params.filter_gradient
+ && filter_cross == params.filter_cross
&& prev_frames == params.prev_frames
&& display_buffer_linear == params.display_buffer_linear
&& cancel_timeout == params.cancel_timeout
More information about the Bf-blender-cvs
mailing list