[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