Commit: 3bba3d32412f2e30e4bd5b7d19cfed77b7f5594f
Author: Lukas Stockner
Date:   Fri Sep 9 17:01:49 2016 +0200
Branches: soc-2016-cycles_denoising
https://developer.blender.org/rB3bba3d32412f2e30e4bd5b7d19cfed77b7f5594f

Cycles: Support filter strength for denoising after rendering

===================================================================

M       intern/cycles/blender/blender_session.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 4274fa9..e30eec5 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -1379,9 +1379,11 @@ void BlenderSession::denoise(BL::RenderResult& b_rr)
                BL::RenderSettings r = b_scene.render();
                BL::RenderSettings::layers_iterator b_s_layer_iter;
                int half_window = -1;
+               float filter_strength = 0.0f;
                for(r.layers.begin(b_s_layer_iter); b_s_layer_iter != 
r.layers.end(); ++b_s_layer_iter) {
                        if(b_s_layer_iter->name() == b_layer_iter->name()) {
                                half_window = b_s_layer_iter->half_window();
+                               filter_strength = 
b_s_layer_iter->filter_strength();
                                break;
                        }
                }
@@ -1389,6 +1391,7 @@ void BlenderSession::denoise(BL::RenderResult& b_rr)
 
                session->params.half_window = half_window;
                session->params.samples = get_int(cscene, "samples");
+               session->params.filter_strength = powf(2.0f, filter_strength);
 
                session->buffers = 
BlenderSync::get_render_buffer(session->device, *b_layer_iter, b_rr, 
session->params.samples);
 
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp
index a5a42cd..568405b 100644
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/render/session.cpp
@@ -806,7 +806,7 @@ void Session::run_denoise()
                kernel_data.film.num_frames = buffers->params.frames;
                kernel_data.film.prev_frames = params.prev_frames;
                if(scene == NULL) {
-                       kernel_data.integrator.filter_strength = 1.0f;
+                       kernel_data.integrator.filter_strength = 
params.filter_strength;
                }
                device->const_copy_to("__data", &kernel_data, 
sizeof(kernel_data));
 
diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h
index 8b73365..42e4d4d 100644
--- a/intern/cycles/render/session.h
+++ b/intern/cycles/render/session.h
@@ -64,6 +64,7 @@ public:
 
        bool only_denoise;
        int half_window;
+       float filter_strength;
        int prev_frames;
 
        double cancel_timeout;
@@ -95,6 +96,7 @@ public:
 
                only_denoise = false;
                half_window = 8;
+               filter_strength = 1.0f;
                prev_frames = 0;
 
                cancel_timeout = 0.1;
@@ -123,6 +125,7 @@ public:
                && denoise_result == params.denoise_result
                && only_denoise == params.only_denoise
                && half_window == params.half_window
+               && filter_strength == params.filter_strength
                && prev_frames == params.prev_frames
                && display_buffer_linear == params.display_buffer_linear
                && cancel_timeout == params.cancel_timeout

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to