[Bf-blender-cvs] [a54b38c4f8] soc-2016-cycles_denoising: Cycles Denoising: Correct buffer variance calculation
Lukas Stockner
noreply at git.blender.org
Wed Feb 1 05:19:10 CET 2017
Commit: a54b38c4f862717cceb6a240cb783ec5314700c6
Author: Lukas Stockner
Date: Thu Jan 19 18:25:06 2017 +0100
Branches: soc-2016-cycles_denoising
https://developer.blender.org/rBa54b38c4f862717cceb6a240cb783ec5314700c6
Cycles Denoising: Correct buffer variance calculation
===================================================================
M intern/cycles/kernel/filter/filter_prefilter.h
===================================================================
diff --git a/intern/cycles/kernel/filter/filter_prefilter.h b/intern/cycles/kernel/filter/filter_prefilter.h
index c1e1fabf0b..4be7ff3ed1 100644
--- a/intern/cycles/kernel/filter/filter_prefilter.h
+++ b/intern/cycles/kernel/filter/filter_prefilter.h
@@ -95,7 +95,7 @@ ccl_device void kernel_filter_combine_halves(int x, int y, float *mean, float *v
if(mean) mean[idx] = 0.5f * (a[idx]+b[idx]);
if(variance) {
- if(r == 0) variance[idx] = 0.5f * (a[idx]-b[idx])*(a[idx]-b[idx]);
+ if(r == 0) variance[idx] = 0.25f * (a[idx]-b[idx])*(a[idx]-b[idx]);
else {
variance[idx] = 0.0f;
float values[25];
@@ -103,7 +103,7 @@ ccl_device void kernel_filter_combine_halves(int x, int y, float *mean, float *v
for(int py = max(y-r, rect.y); py < min(y+r+1, rect.w); py++) {
for(int px = max(x-r, rect.x); px < min(x+r+1, rect.z); px++) {
int pidx = (py-rect.y)*buffer_w + (px-rect.x);
- values[numValues++] = 0.5f * (a[pidx]-b[pidx])*(a[pidx]-b[pidx]);
+ values[numValues++] = 0.25f * (a[pidx]-b[pidx])*(a[pidx]-b[pidx]);
}
}
/* Insertion-sort the variances (fast enough for 25 elements). */
More information about the Bf-blender-cvs
mailing list