[Bf-blender-cvs] [8a8978c] experimental-build: Revert "Cycles: Experimental proof-of-concept LWR denoising"

Lukas Stockner noreply at git.blender.org
Wed Mar 23 21:56:20 CET 2016


Commit: 8a8978c7291ba7e591178a3025c2d33601e79f90
Author: Lukas Stockner
Date:   Wed Mar 23 21:53:30 2016 +0100
Branches: experimental-build
https://developer.blender.org/rB8a8978c7291ba7e591178a3025c2d33601e79f90

Revert "Cycles: Experimental proof-of-concept LWR denoising"

This reverts commit d93cc73ffdf1ecea47b80292f771d11944bbb42c.

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

M	intern/cycles/blender/addon/properties.py
M	intern/cycles/blender/addon/ui.py
M	intern/cycles/blender/blender_session.cpp
M	intern/cycles/blender/blender_session.h
M	intern/cycles/blender/blender_sync.cpp
M	intern/cycles/device/device_cpu.cpp
M	intern/cycles/device/device_cuda.cpp
M	intern/cycles/device/device_task.h
M	intern/cycles/kernel/closure/bsdf.h
M	intern/cycles/kernel/closure/bsdf_ashikhmin_shirley.h
M	intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h
M	intern/cycles/kernel/closure/bsdf_diffuse.h
M	intern/cycles/kernel/closure/bsdf_hair.h
M	intern/cycles/kernel/closure/bsdf_microfacet.h
M	intern/cycles/kernel/closure/bsdf_oren_nayar.h
M	intern/cycles/kernel/closure/bsdf_reflection.h
M	intern/cycles/kernel/closure/bsdf_refraction.h
M	intern/cycles/kernel/closure/bsdf_toon.h
M	intern/cycles/kernel/closure/bsdf_transparent.h
M	intern/cycles/kernel/kernel_accumulate.h
D	intern/cycles/kernel/kernel_filter.h
M	intern/cycles/kernel/kernel_passes.h
M	intern/cycles/kernel/kernel_path.h
M	intern/cycles/kernel/kernel_path_branched.h
M	intern/cycles/kernel/kernel_path_state.h
M	intern/cycles/kernel/kernel_path_surface.h
M	intern/cycles/kernel/kernel_shader.h
M	intern/cycles/kernel/kernel_types.h
M	intern/cycles/kernel/kernels/cpu/kernel_cpu.h
M	intern/cycles/kernel/kernels/cpu/kernel_cpu_impl.h
M	intern/cycles/kernel/kernels/cuda/kernel.cu
M	intern/cycles/render/buffers.cpp
M	intern/cycles/render/buffers.h
M	intern/cycles/render/film.cpp
M	intern/cycles/render/film.h
M	intern/cycles/render/session.cpp
M	intern/cycles/render/session.h
M	intern/cycles/render/tile.cpp
M	intern/cycles/render/tile.h
M	intern/cycles/util/CMakeLists.txt
M	intern/cycles/util/util_atomic.h
M	intern/cycles/util/util_math.h

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

diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index 0dd5a16..01aa619 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -255,63 +255,6 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
                 default='USE',
                 )
 
-        cls.use_filtering = BoolProperty(
-                name="Use LWR filtering",
-                description="Apply a post-processing filter to the image that removes noise at the cost of accuracy",
-                default=False,
-                )
-        cls.filter_half_window = IntProperty(
-                name="Half Window",
-                description="Radius of the LWR filter window (larger values produce smoother results, but take longer to filter and potentially lose more detail)",
-                min=2, max=64,
-                default=5,
-                )
-        cls.filter_bandwidth_factor = FloatProperty(
-                name="Bandwidth factor",
-                description="Controls the strength of the filtering - 0 is the automatically selected strength (and should be fine for most scenes, except for hair/fur)",
-                min=-2, max=2,
-                default=0,
-                )
-
-        cls.filter_diffuse_direct = BoolProperty(
-                name="Diffuse Direct",
-                description="Filter the diffuse direct pass separately",
-                default=False,
-                )
-        cls.filter_diffuse_indirect = BoolProperty(
-                name="Diffuse Indirect",
-                description="Filter the diffuse indirect pass separately",
-                default=False,
-                )
-        cls.filter_glossy_direct = BoolProperty(
-                name="Glossy Direct",
-                description="Filter the glossy direct pass separately",
-                default=False,
-                )
-        cls.filter_glossy_indirect = BoolProperty(
-                name="Glossy Indirect",
-                description="Filter the glossy indirect pass separately",
-                default=False,
-                )
-        cls.filter_transmission_direct = BoolProperty(
-                name="Transmission Direct",
-                description="Filter the transmission direct pass separately",
-                default=False,
-                )
-        cls.filter_transmission_indirect = BoolProperty(
-                name="Transmissison Indirect",
-                description="Filter the transmission indirect pass separately",
-                default=False,
-                )
-
-        cls.prepass_samples = IntProperty(
-                name="Prepass Samples",
-                description="Number of samples to render before the remaining samples are rendered"
-                            "in order to give a faster preview of the result",
-                min=0, max=16384,
-                default=0,
-                )
-
         cls.sample_all_lights_direct = BoolProperty(
                 name="Sample All Direct Lights",
                 description="Sample all lights (for direct samples), rather than randomly picking one",
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index ff9ed92..9234df5 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -200,22 +200,6 @@ class CyclesRender_PT_sampling(CyclesButtonsPanel, Panel):
         if not (use_opencl(context) and cscene.feature_set != 'EXPERIMENTAL'):
             layout.row().prop(cscene, "sampling_pattern", text="Pattern")
 
-        row = layout.row()
-        sub = row.column()
-        sub.prop(cscene, "use_filtering")
-        if cscene.use_filtering:
-            sub.prop(cscene, "filter_half_window")
-            sub.prop(cscene, "filter_bandwidth_factor", slider=True)
-            col = sub.column(align=True)
-            row = col.row(align=True)
-            row.prop(cscene, "filter_diffuse_direct", toggle=True)
-            row.prop(cscene, "filter_glossy_direct", toggle=True)
-            row.prop(cscene, "filter_transmission_direct", toggle=True)
-            row = col.row(align=True)
-            row.prop(cscene, "filter_diffuse_indirect", toggle=True)
-            row.prop(cscene, "filter_glossy_indirect", toggle=True)
-            row.prop(cscene, "filter_transmission_indirect", toggle=True)
-
         for rl in scene.render.layers:
             if rl.samples > 0:
                 layout.separator()
@@ -379,7 +363,6 @@ class CyclesRender_PT_performance(CyclesButtonsPanel, Panel):
         sub.prop(rd, "tile_y", text="Y")
 
         sub.prop(cscene, "use_progressive_refine")
-        sub.prop(cscene, "prepass_samples")
 
         subsub = sub.column(align=True)
         subsub.enabled = not rd.use_border
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 8d4c9fc..977ba3d 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -375,12 +375,16 @@ static void end_render_result(BL::RenderEngine& b_engine,
 	b_engine.end_result(b_rr, (int)cancel, (int)do_merge_results);
 }
 
-void BlenderSession::do_write_update_render_tile(RenderTile& rtile, bool highlight, bool do_update_only)
+void BlenderSession::do_write_update_render_tile(RenderTile& rtile, bool do_update_only)
 {
+	BufferParams& params = rtile.buffers->params;
+	int x = params.full_x - session->tile_manager.params.full_x;
+	int y = params.full_y - session->tile_manager.params.full_y;
+	int w = params.width;
+	int h = params.height;
+
 	/* get render result */
-	int x = rtile.x - session->tile_manager.params.full_x;
-	int y = rtile.y - session->tile_manager.params.full_y;
-	BL::RenderResult b_rr = begin_render_result(b_engine, x, y, rtile.w, rtile.h, b_rlay_name.c_str(), b_rview_name.c_str());
+	BL::RenderResult b_rr = begin_render_result(b_engine, x, y, w, h, b_rlay_name.c_str(), b_rview_name.c_str());
 
 	/* can happen if the intersected rectangle gives 0 width or height */
 	if(b_rr.ptr.data == NULL) {
@@ -407,37 +411,37 @@ void BlenderSession::do_write_update_render_tile(RenderTile& rtile, bool highlig
 			update_render_result(b_rr, b_rlay, rtile);
 		}
 
-		end_render_result(b_engine, b_rr, highlight, true);
+		end_render_result(b_engine, b_rr, true, true);
 	}
 	else {
 		/* write result */
 		write_render_result(b_rr, b_rlay, rtile);
-		end_render_result(b_engine, b_rr, highlight, true);
+		end_render_result(b_engine, b_rr, false, true);
 	}
 }
 
 void BlenderSession::write_render_tile(RenderTile& rtile)
 {
-	do_write_update_render_tile(rtile, false, false);
+	do_write_update_render_tile(rtile, false);
 }
 
-void BlenderSession::update_render_tile(RenderTile& rtile, bool highlight)
+void BlenderSession::update_render_tile(RenderTile& rtile)
 {
 	/* use final write for preview renders, otherwise render result wouldn't be
 	 * be updated in blender side
 	 * would need to be investigated a bit further, but for now shall be fine
 	 */
 	if(!b_engine.is_preview())
-		do_write_update_render_tile(rtile, highlight, true);
+		do_write_update_render_tile(rtile, true);
 	else
-		do_write_update_render_tile(rtile, false, false);
+		do_write_update_render_tile(rtile, false);
 }
 
 void BlenderSession::render()
 {
 	/* set callback to write out render results */
 	session->write_render_tile_cb = function_bind(&BlenderSession::write_render_tile, this, _1);
-	session->update_render_tile_cb = function_bind(&BlenderSession::update_render_tile, this, _1, _2);
+	session->update_render_tile_cb = function_bind(&BlenderSession::update_render_tile, this, _1);
 
 	/* get buffer parameters */
 	SessionParams session_params = BlenderSync::get_session_params(b_engine, b_userpref, b_scene, background);
@@ -447,7 +451,7 @@ void BlenderSession::render()
 	BL::RenderSettings r = b_scene.render();
 	BL::RenderSettings::layers_iterator b_layer_iter;
 	BL::RenderResult::views_iterator b_view_iter;
-
+	
 	for(r.layers.begin(b_layer_iter); b_layer_iter != r.layers.end(); ++b_layer_iter) {
 		b_rlay_name = b_layer_iter->name();
 
@@ -485,9 +489,8 @@ void BlenderSession::render()
 		}
 
 		buffer_params.passes = passes;
-		buffer_params.lwr_passes = session_params.filter_params;
 		scene->film->pass_alpha_threshold = b_layer_iter->pass_alpha_threshold();
-		scene->film->tag_passes_update(scene, passes, session_params.filter_params);
+		scene->film->tag_passes_update(scene, passes);
 		scene->film->tag_update(scene);
 		scene->integrator->tag_update(scene);
 
@@ -704,9 +707,10 @@ void BlenderSession::do_write_update_render_result(BL::RenderResult& b_rr,
 	if(!buffers->copy_from_device())
 		return;
 
+	BufferParams& params = buffers->params;
 	float exposure = scene->film->exposure;
 
-	vector<float> pixels(rtile.w*rtile.h*4);
+	vector<float> pixels(params.width*params.height*4);
 
 	if(!do_update_only) {
 		/* copy each pass */
@@ -720,7 +724,7 @@ void BlenderSession::do_write_update_render_result(BL::RenderResult& b_rr,
 			int components = b_pass.channels();
 
 			/* copy pixels */
-			if(!buffers->get_pass_rect(pass_type, exposure, rtile.sample, components, &pixels[0], rtile.x, rtile.y, rtile.w, rtile.h))
+			if(!buffers->get_pass_rect(pass_type, exposure, rtile.sample, components, &pixels[0]))
 				memset(&pixels[0], 0, pixels.size()*sizeof(float));
 
 			b_pass.rect(&pixels[0]);
@@ -729,7 +733,7 @@ void BlenderSession::do_write_update_render_result(BL::RenderResult& b_rr,
 	else {
 		/* copy combined pass */
 		BL::RenderPass b_combined_pass(b_rlay.passes.find_by_type(BL::RenderPass::type_COMBINED, b_rview_name.c_str()));
-		if(buffers->get_pass_rect(PASS_COMBINED, exposure, rtile.sample, 4, &pixels[0], rtile.x, rtile.y, rtile.w, rtile.h))
+		if(buffers->get_pass_rect(PASS_COMBINED, exposure, rtile.sample, 4, &pixels[0]))
 			b_combined_pass.rect(&pixels[0]);
 	}
 
diff --git a/intern/cycles/blender/blender_session.h b/intern/cycles/blender/blender_session.h
index 233d7a6..8492d9f 100644
--- a/intern/cycles/blender/blender_session.h
+++ b/intern/cycles/blender/blender_session.h
@@ -79,7 +79,7 @@ public:
 	void update_render_result(BL::RenderResult& b_rr,
 	                       

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list