[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