[Bf-blender-cvs] [f8bb5aac26] temp-cycles-denoising: Cycles Denoising: Rename half window to radius

Lukas Stockner noreply at git.blender.org
Fri Mar 24 20:18:50 CET 2017


Commit: f8bb5aac2627403aac3b068902315995a5f4ba41
Author: Lukas Stockner
Date:   Fri Mar 24 16:31:57 2017 +0100
Branches: temp-cycles-denoising
https://developer.blender.org/rBf8bb5aac2627403aac3b068902315995a5f4ba41

Cycles Denoising: Rename half window to radius

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

M	intern/cycles/blender/addon/ui.py
M	intern/cycles/blender/blender_session.cpp
M	intern/cycles/device/device_cpu.cpp
M	intern/cycles/device/device_cuda.cpp
M	intern/cycles/device/device_denoising.cpp
M	intern/cycles/device/device_denoising.h
M	intern/cycles/device/device_task.h
M	intern/cycles/device/opencl/opencl_base.cpp
M	intern/cycles/filter/filter_transform.h
M	intern/cycles/filter/filter_transform_gpu.h
M	intern/cycles/filter/filter_transform_sse.h
M	intern/cycles/filter/kernels/cpu/filter_cpu.h
M	intern/cycles/filter/kernels/cpu/filter_cpu_impl.h
M	intern/cycles/filter/kernels/cuda/filter.cu
M	intern/cycles/filter/kernels/opencl/filter.cl
M	intern/cycles/render/session.cpp
M	intern/cycles/render/session.h
M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenloader/intern/versioning_270.c
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesrna/intern/rna_scene.c

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

diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index 8b96d27feb..1557115d3e 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -595,7 +595,7 @@ class CyclesRender_PT_denoising(CyclesButtonsPanel, Panel):
         col = layout.column()
 
         sub = col.column(align=True)
-        sub.prop(rl, "half_window")
+        sub.prop(rl, "radius")
         sub.prop(rl, "filter_strength", slider=True)
         sub.prop(rl, "filter_weighting_adjust", slider=True)
         sub.prop(rl, "filter_gradients")
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 747ab569c7..2f3d0ff316 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -520,7 +520,7 @@ void BlenderSession::render()
 		scene->film->denoising_split_pass = b_layer_iter->filter_cross();
 		buffer_params.denoising_clean_pass = scene->film->denoising_clean_pass;
 		buffer_params.denoising_split_pass = scene->film->denoising_split_pass;
-		session->params.denoising_half_window = b_layer_iter->half_window();
+		session->params.denoising_radius = b_layer_iter->denoising_radius();
 		session->params.denoising_pca_threshold = (b_layer_iter->filter_strength() == 0.0f)? 1e-3f : copysignf(powf(10.0f, -fabsf(b_layer_iter->filter_strength())*2.0f), b_layer_iter->filter_strength());
 		session->params.denoising_weight_adjust = powf(2.0f, b_layer_iter->filter_weighting_adjust() - 1.0f);
 		session->params.denoising_use_gradients = b_layer_iter->filter_gradients();
diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp
index 426dda8742..d61ca79358 100644
--- a/intern/cycles/device/device_cpu.cpp
+++ b/intern/cycles/device/device_cpu.cpp
@@ -456,7 +456,7 @@ public:
 				                                    (float*) task->storage.transform.device_pointer,
 				                                    (int*)   task->storage.rank.device_pointer,
 				                                    &task->rect.x,
-				                                    task->half_window,
+				                                    task->radius,
 				                                    task->pca_threshold);
 			}
 		}
@@ -476,7 +476,7 @@ public:
 		float *difference     = (float*) task->reconstruction_state.temporary_1_ptr;
 		float *blurDifference = (float*) task->reconstruction_state.temporary_2_ptr;
 
-		int r = task->half_window;
+		int r = task->radius;
 		for(int i = 0; i < (2*r+1)*(2*r+1); i++) {
 			int dy = i / (2*r+1) - r;
 			int dx = i % (2*r+1) - r;
diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp
index 07166fc528..8c9db9bab2 100644
--- a/intern/cycles/device/device_cuda.cpp
+++ b/intern/cycles/device/device_cuda.cpp
@@ -1021,7 +1021,7 @@ public:
 		                &task->storage.rank.device_pointer,
 		                &task->filter_area,
 		                &task->rect,
-		                &task->half_window,
+		                &task->radius,
 		                &task->pca_threshold};
 		CUDA_LAUNCH_KERNEL(cuFilterConstructTransform, args);
 		cuda_assert(cuCtxSynchronize());
@@ -1065,7 +1065,7 @@ public:
 		CUdeviceptr difference     = task->reconstruction_state.temporary_1_ptr;
 		CUdeviceptr blurDifference = task->reconstruction_state.temporary_2_ptr;
 
-		int r = task->half_window;
+		int r = task->radius;
 		int f = 4;
 		float a = 1.0f;
 		for(int i = 0; i < (2*r+1)*(2*r+1); i++) {
diff --git a/intern/cycles/device/device_denoising.cpp b/intern/cycles/device/device_denoising.cpp
index 008808ddd1..6e3a5bb399 100644
--- a/intern/cycles/device/device_denoising.cpp
+++ b/intern/cycles/device/device_denoising.cpp
@@ -22,7 +22,7 @@ CCL_NAMESPACE_BEGIN
 
 void DenoisingTask::init_from_devicetask(const DeviceTask &task)
 {
-	half_window = task.denoising_half_window;
+	radius = task.denoising_radius;
 	pca_threshold = task.denoising_pca_threshold;
 	nlm_k_2 = task.denoising_weight_adjust;
 	use_cross_denoising = task.denoising_use_cross;
@@ -32,11 +32,11 @@ void DenoisingTask::init_from_devicetask(const DeviceTask &task)
 	render_buffer.denoising_data_offset  = task.pass_denoising_data;
 	render_buffer.denoising_clean_offset = task.pass_denoising_clean;
 
-	/* Expand filter_area by half_window pixels and clamp the result to the extent of the neighboring tiles */
-	rect = make_int4(max(tiles->x[0], filter_area.x - half_window),
-	                 max(tiles->y[0], filter_area.y - half_window),
-	                 min(tiles->x[3], filter_area.x + filter_area.z + half_window),
-	                 min(tiles->y[3], filter_area.y + filter_area.w + half_window));
+	/* Expand filter_area by radius pixels and clamp the result to the extent of the neighboring tiles */
+	rect = make_int4(max(tiles->x[0], filter_area.x - radius),
+	                 max(tiles->y[0], filter_area.y - radius),
+	                 min(tiles->x[3], filter_area.x + filter_area.z + radius),
+	                 min(tiles->y[3], filter_area.y + filter_area.w + radius));
 }
 
 void DenoisingTask::tiles_from_rendertiles(RenderTile *rtiles)
diff --git a/intern/cycles/device/device_denoising.h b/intern/cycles/device/device_denoising.h
index 6a761258ab..3a4e959167 100644
--- a/intern/cycles/device/device_denoising.h
+++ b/intern/cycles/device/device_denoising.h
@@ -27,7 +27,7 @@ CCL_NAMESPACE_BEGIN
 class DenoisingTask {
 public:
 	/* Parameters of the denoising algorithm. */
-	int half_window;
+	int radius;
 	float pca_threshold;
 	float nlm_k_2;
 	bool use_cross_denoising;
diff --git a/intern/cycles/device/device_task.h b/intern/cycles/device/device_task.h
index 3f34426ebb..9b958e159d 100644
--- a/intern/cycles/device/device_task.h
+++ b/intern/cycles/device/device_task.h
@@ -67,7 +67,7 @@ public:
 	function<bool(void)> get_cancel;
 	function<void(RenderTile*)> get_neighbor_tiles;
 
-	int denoising_half_window;
+	int denoising_radius;
 	float denoising_pca_threshold;
 	float denoising_weight_adjust;
 	bool denoising_use_cross;
diff --git a/intern/cycles/device/opencl/opencl_base.cpp b/intern/cycles/device/opencl/opencl_base.cpp
index 82d3983084..f10e45bf35 100644
--- a/intern/cycles/device/opencl/opencl_base.cpp
+++ b/intern/cycles/device/opencl/opencl_base.cpp
@@ -669,7 +669,7 @@ bool OpenCLDeviceBase::denoising_construct_transform(DenoisingTask *task)
 	                rank_mem,
 	                task->filter_area,
 	                task->rect,
-	                task->half_window,
+	                task->radius,
 	                task->pca_threshold);
 
 	enqueue_kernel(ckFilterConstructTransform,
@@ -711,7 +711,7 @@ bool OpenCLDeviceBase::denoising_reconstruct(device_ptr color_ptr,
 	cl_mem difference     = CL_MEM_PTR(task->reconstruction_state.temporary_1_ptr);
 	cl_mem blurDifference = CL_MEM_PTR(task->reconstruction_state.temporary_2_ptr);
 
-	int r = task->half_window;
+	int r = task->radius;
 	int f = 4;
 	float a = 1.0f;
 	for(int i = 0; i < (2*r+1)*(2*r+1); i++) {
diff --git a/intern/cycles/filter/filter_transform.h b/intern/cycles/filter/filter_transform.h
index 04d4327869..f70c5cd4c6 100644
--- a/intern/cycles/filter/filter_transform.h
+++ b/intern/cycles/filter/filter_transform.h
@@ -19,7 +19,7 @@ CCL_NAMESPACE_BEGIN
 ccl_device void kernel_filter_construct_transform(int sample, float ccl_readonly_ptr buffer,
                                                   int x, int y, int4 rect,
                                                   float *transform, int *rank,
-                                                  int half_window, float pca_threshold)
+                                                  int radius, float pca_threshold)
 {
 	float features[DENOISE_FEATURES];
 
@@ -37,10 +37,10 @@ ccl_device void kernel_filter_construct_transform(int sample, float ccl_readonly
 
 
 	/* === Calculate denoising window. === */
-	int2 low  = make_int2(max(rect.x, x - half_window),
-	                      max(rect.y, y - half_window));
-	int2 high = make_int2(min(rect.z, x + half_window + 1),
-	                      min(rect.w, y + half_window + 1));
+	int2 low  = make_int2(max(rect.x, x - radius),
+	                      max(rect.y, y - radius));
+	int2 high = make_int2(min(rect.z, x + radius + 1),
+	                      min(rect.w, y + radius + 1));
 
 
 
diff --git a/intern/cycles/filter/filter_transform_gpu.h b/intern/cycles/filter/filter_transform_gpu.h
index 3a1b750a54..a42ccd76c4 100644
--- a/intern/cycles/filter/filter_transform_gpu.h
+++ b/intern/cycles/filter/filter_transform_gpu.h
@@ -21,7 +21,7 @@ ccl_device void kernel_filter_construct_transform(int sample,
                                                   int x, int y, int4 rect,
                                                   ccl_global float *transform,
                                                   ccl_global int *rank,
-                                                  int half_window, float pca_threshold,
+                                                  int radius, float pca_threshold,
                                                   int transform_stride, int localIdx)
 {
 	ccl_local float shared_features[DENOISE_FEATURES*CCL_MAX_LOCAL_SIZE];
@@ -31,10 +31,10 @@ ccl_device void kernel_filter_construct_transform(int sample,
 	int buffer_h = (rect.w - rect.y);
 	int pass_stride = buffer_h * buffer_w;
 	/* === Calculate denoising window. === */
-	int2 low  = make_int2(max(rect.x, x - half_window),
-	                      max(rect.y, y - half_window));
-	int2 high = make_int2(min(rect.z, x + half_window + 1),
-	                      min(rect.w, y + half_window + 1));
+	int2 low  = make_int2(max(rect.x, x - radius),
+	                      max(rect.y, y - radius));
+	int2 high = make_int2(min(rect.z, x + radius + 1),
+	                      min(rect.w, y + radius + 1));
 	ccl_global float ccl_readonly_ptr pixel_buffer;
 	int2 pixel;
 
diff --git a/intern/cycles/filter/filter_transform_sse.h b/intern/cycles/filter/filter_transform_sse.h
index 9a8425ef10..c5bb1e93e9 100644
--- a/intern/cycles/filter/filter_transform_sse.h
+++ b/intern/cycles/filter/filter_transform_sse.h
@@ -19,7 +19,7 @@ CCL_NAMESPACE_BEGIN
 ccl_device void kernel_filter_construct_transform(int sam

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list