[Bf-blender-cvs] [cf64c891f5] soc-2016-cycles_denoising: Cycles Denoising: Fix Cross Denoising after Rendering
Lukas Stockner
noreply at git.blender.org
Wed Feb 1 05:19:11 CET 2017
Commit: cf64c891f590c881f9317db79486081f9759ba42
Author: Lukas Stockner
Date: Fri Jan 27 04:46:52 2017 +0100
Branches: soc-2016-cycles_denoising
https://developer.blender.org/rBcf64c891f590c881f9317db79486081f9759ba42
Cycles Denoising: Fix Cross Denoising after Rendering
===================================================================
M intern/cycles/blender/blender_sync.cpp
M intern/cycles/render/denoising.cpp
M intern/cycles/render/session.cpp
===================================================================
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index e44bf6a5b0..ca5ac9976e 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -875,9 +875,12 @@ RenderBuffers* BlenderSync::get_render_buffer(Device *device,
denoising_passes |= denoising_type;
if(denoising_type == DENOISING_PASS_CLEAN)
params.selective_denoising = true;
+ if(denoising_type == DENOISING_PASS_NOISY_B)
+ params.cross_denoising = true;
}
}
params.denoising_passes = ((~denoising_passes & DENOISING_PASS_REQUIRED) == 0);
+ assert(!params.cross_denoising || (denoising_passes & DENOISING_PASS_NOISY_B_VAR));
RenderBuffers *buffer = new RenderBuffers(device);
buffer->reset(device, params);
diff --git a/intern/cycles/render/denoising.cpp b/intern/cycles/render/denoising.cpp
index 8dd07d3022..a5ce18c18b 100644
--- a/intern/cycles/render/denoising.cpp
+++ b/intern/cycles/render/denoising.cpp
@@ -136,6 +136,7 @@ static RenderBuffers* load_frame(string file, Device *device, RenderBuffers *buf
params.full_x = params.full_y = 0;
params.denoising_passes = true;
params.selective_denoising = (passes & DENOISING_PASS_CLEAN);
+ params.cross_denoising = (passes & DENOISING_PASS_NOISY_B) && (passes & DENOISING_PASS_NOISY_B_VAR);
params.frames = numframes;
buffers = new RenderBuffers(device);
@@ -248,4 +249,4 @@ bool denoise_standalone(SessionParams &session_params,
return true;
}
-CCL_NAMESPACE_END
\ No newline at end of file
+CCL_NAMESPACE_END
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp
index 72b2839eb6..f4dd529dd6 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 = 0;
+ kernel_data.film.denoise_cross = buffers->params.cross_denoising;
kernel_data.film.exposure = 1.0f;
kernel_data.film.num_frames = buffers->params.frames;
kernel_data.film.prev_frames = params.prev_frames;
More information about the Bf-blender-cvs
mailing list