[Bf-blender-cvs] [752676fac7] soc-2016-cycles_denoising: Cycles Denoising: Allow to reconstruct into denoising buffer

Lukas Stockner noreply at git.blender.org
Wed Feb 1 05:19:08 CET 2017


Commit: 752676fac7db96f1c8fc2f3f43069f6273121c14
Author: Lukas Stockner
Date:   Sun Jan 15 18:00:30 2017 +0100
Branches: soc-2016-cycles_denoising
https://developer.blender.org/rB752676fac7db96f1c8fc2f3f43069f6273121c14

Cycles Denoising: Allow to reconstruct into denoising buffer

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

M	intern/cycles/kernel/filter/filter_final_pass_impl.h

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

diff --git a/intern/cycles/kernel/filter/filter_final_pass_impl.h b/intern/cycles/kernel/filter/filter_final_pass_impl.h
index 470528c361..cceb768ba5 100644
--- a/intern/cycles/kernel/filter/filter_final_pass_impl.h
+++ b/intern/cycles/kernel/filter/filter_final_pass_impl.h
@@ -81,16 +81,24 @@ ccl_device_inline void kernel_filter_finalize(int x, int y, int storage_ofs, int
 	math_trimatrix_vec3_solve(XtWX, XtWY, storage->rank+1, stride);
 
 	float3 final_color = XtWY[0];
-	float *combined_buffer = buffer + (y*buffer_params.y + x + buffer_params.x)*buffer_params.z;
-	final_color *= sample;
-	if(buffer_params.w) {
-		final_color.x += combined_buffer[buffer_params.w+0];
-		final_color.y += combined_buffer[buffer_params.w+1];
-		final_color.z += combined_buffer[buffer_params.w+2];
+	if(buffer_params.z) {
+		float *combined_buffer = buffer + (y*buffer_params.y + x + buffer_params.x)*buffer_params.z;
+		final_color *= sample;
+		if(buffer_params.w) {
+			final_color.x += combined_buffer[buffer_params.w+0];
+			final_color.y += combined_buffer[buffer_params.w+1];
+			final_color.z += combined_buffer[buffer_params.w+2];
+		}
+		combined_buffer[0] = final_color.x;
+		combined_buffer[1] = final_color.y;
+		combined_buffer[2] = final_color.z;
+	}
+	else {
+		int idx = (y+buffer_params.y)*w+(x+buffer_params.x);
+		buffer[idx] = final_color.x;
+		buffer[buffer_params.w + idx] = final_color.y;
+		buffer[2*buffer_params.w + idx] = final_color.z;
 	}
-	combined_buffer[0] = final_color.x;
-	combined_buffer[1] = final_color.y;
-	combined_buffer[2] = final_color.z;
 }
 
 #undef STORAGE_TYPE




More information about the Bf-blender-cvs mailing list