[Bf-blender-cvs] [ac3c9e6d17] temp-cycles-denoising: Cycles Denoising: Remove denoising-after-rendering functions

Lukas Stockner noreply at git.blender.org
Mon Feb 13 02:05:46 CET 2017


Commit: ac3c9e6d1743c14fe22d041d3a72a696d93df490
Author: Lukas Stockner
Date:   Sat Feb 11 03:39:47 2017 +0100
Branches: temp-cycles-denoising
https://developer.blender.org/rBac3c9e6d1743c14fe22d041d3a72a696d93df490

Cycles Denoising: Remove denoising-after-rendering functions

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

M	intern/cycles/blender/addon/engine.py
M	intern/cycles/blender/blender_python.cpp
M	intern/cycles/blender/blender_session.cpp
M	intern/cycles/blender/blender_session.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

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

diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py
index 69f728d274..a56b0df26c 100644
--- a/intern/cycles/blender/addon/engine.py
+++ b/intern/cycles/blender/addon/engine.py
@@ -192,11 +192,7 @@ def system_info():
     return _cycles.system_info()
 
 def can_postprocess(result):
-    import _cycles
-    return _cycles.can_postprocess(result.as_pointer())
+    return False
 
 def postprocess(engine, scene, result):
-    import bpy
-    import _cycles
-    userpref = bpy.context.user_preferences.as_pointer()
-    _cycles.postprocess(engine.as_pointer(), userpref, scene.as_pointer(), result.as_pointer())
+    return
diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp
index 5ec6aa43d6..55f53400bf 100644
--- a/intern/cycles/blender/blender_python.cpp
+++ b/intern/cycles/blender/blender_python.cpp
@@ -694,58 +694,6 @@ static PyObject *set_resumable_chunks_func(PyObject * /*self*/, PyObject *args)
 	Py_RETURN_NONE;
 }
 
-static PyObject *can_postprocess_func(PyObject * /*self*/, PyObject *args)
-{
-	PyObject *pyresult;
-
-	if(!PyArg_ParseTuple(args, "O", &pyresult))
-		return NULL;
-
-	/* RNA */
-	PointerRNA resultptr;
-	RNA_pointer_create(NULL, &RNA_RenderResult, (void*)PyLong_AsVoidPtr(pyresult), &resultptr);
-	BL::RenderResult b_rr(resultptr);
-
-	bool can_denoise = can_denoise_render_result(b_rr);
-
-	return Py_BuildValue("i", can_denoise? 1: 0);
-}
-
-static PyObject *postprocess_func(PyObject * /*self*/, PyObject *args)
-{
-	PyObject *pyresult, *pyengine, *pyuserpref, *pyscene;
-
-	if(!PyArg_ParseTuple(args, "OOOO", &pyengine, &pyuserpref, &pyscene, &pyresult))
-		return NULL;
-
-	/* RNA */
-	PointerRNA engineptr;
-	RNA_pointer_create(NULL, &RNA_RenderEngine, (void*)PyLong_AsVoidPtr(pyengine), &engineptr);
-	BL::RenderEngine engine(engineptr);
-
-	PointerRNA userprefptr;
-	RNA_pointer_create(NULL, &RNA_UserPreferences, (void*)PyLong_AsVoidPtr(pyuserpref), &userprefptr);
-	BL::UserPreferences userpref(userprefptr);
-
-	PointerRNA sceneptr;
-	RNA_pointer_create(NULL, &RNA_Scene, (void*)PyLong_AsVoidPtr(pyscene), &sceneptr);
-	BL::Scene scene(sceneptr);
-
-	PointerRNA resultptr;
-	RNA_pointer_create(NULL, &RNA_RenderResult, (void*)PyLong_AsVoidPtr(pyresult), &resultptr);
-	BL::RenderResult b_rr(resultptr);
-
-	BlenderSession session(engine, userpref, scene);
-
-	python_thread_state_save(&session.python_thread_state);
-
-	session.denoise(b_rr);
-
-	python_thread_state_restore(&session.python_thread_state);
-
-	Py_RETURN_NONE;
-}
-
 static PyObject *get_device_types_func(PyObject * /*self*/, PyObject * /*args*/)
 {
 	vector<DeviceInfo>& devices = Device::available_devices();
@@ -780,9 +728,6 @@ static PyMethodDef methods[] = {
 	{"opencl_disable", opencl_disable_func, METH_NOARGS, ""},
 #endif
 
-	{"can_postprocess", can_postprocess_func, METH_VARARGS, ""},
-	{"postprocess", postprocess_func, METH_VARARGS, ""},
-
 	/* Debugging routines */
 	{"debug_flags_update", debug_flags_update_func, METH_VARARGS, ""},
 	{"debug_flags_reset", debug_flags_reset_func, METH_NOARGS, ""},
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 9f95c4d301..b44c988966 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -95,30 +95,6 @@ BlenderSession::BlenderSession(BL::RenderEngine& b_engine,
 	start_resize_time = 0.0;
 }
 
-BlenderSession::BlenderSession(BL::RenderEngine& b_engine,
-                               BL::UserPreferences& b_userpref,
-                               BL::Scene& b_scene)
-: b_engine(b_engine),
-  b_userpref(b_userpref),
-  b_data(PointerRNA_NULL),
-  b_render(PointerRNA_NULL),
-  b_scene(b_scene),
-  b_v3d(PointerRNA_NULL),
-  b_rv3d(PointerRNA_NULL),
-  python_thread_state(NULL)
-{
-	width = 0;
-	height = 0;
-
-	sync = NULL;
-	session = NULL;
-	scene = NULL;
-
-	background = true;
-	last_redraw_time = 0.0;
-	start_resize_time = 0.0;
-}
-
 BlenderSession::~BlenderSession()
 {
 	free_session();
@@ -1325,81 +1301,4 @@ void BlenderSession::update_resumable_tile_manager(int num_samples)
 	session->tile_manager.range_num_samples = range_num_samples;
 }
 
-void BlenderSession::denoise(BL::RenderResult& b_rr)
-{
-	PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles");
-
-	SessionParams session_params = BlenderSync::get_session_params(b_engine, b_userpref, b_scene, true);
-	session_params.only_denoise = true;
-	session_params.progressive_refine = false;
-	session_params.progressive = false;
-	session_params.samples = 1;
-	session_params.start_resolution = 1;
-	session = new Session(session_params);
-	session->set_pause(false);
-
-	b_engine.use_highlight_tiles(true);
-	session->progress.set_update_callback(function_bind(&BlenderSession::tag_redraw, this));
-	session->progress.set_cancel_callback(function_bind(&BlenderSession::test_cancel, this));
-	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);
-
-	BL::RenderResult::layers_iterator b_layer_iter;
-	for(b_rr.layers.begin(b_layer_iter); b_layer_iter != b_rr.layers.end(); ++b_layer_iter) {
-		b_rlay_name = b_layer_iter->name();
-
-		/* Search corresponding scene layer to get the denoising properties. */
-		BL::RenderSettings r = b_scene.render();
-		BL::RenderSettings::layers_iterator b_s_layer_iter;
-		BL::SceneRenderLayer b_s_layer = r.layers.active();
-		for(r.layers.begin(b_s_layer_iter); b_s_layer_iter != r.layers.end(); ++b_s_layer_iter) {
-			if(b_s_layer_iter->name() == b_layer_iter->name()) {
-				b_s_layer = *b_s_layer_iter;
-				break;
-			}
-		}
-
-		session->params.samples = get_int(cscene, "samples");
-		if(get_boolean(cscene, "use_square_samples")) {
-			session->params.samples *= session->params.samples;
-		}
-
-		session->buffers = BlenderSync::get_render_buffer(session->device, *b_layer_iter, b_rr, session->params.samples);
-		if(!session->buffers) {
-			continue;
-		}
-
-		session->params.half_window = b_s_layer.half_window();
-		float filter_strength = b_s_layer.filter_strength();
-		session->params.filter_strength = (filter_strength == 0.0f)? 1e-3f : copysignf(powf(10.0f, -fabsf(filter_strength)*2.0f), filter_strength);
-		session->params.filter_weight_adjust = powf(2.0f, b_s_layer.filter_weighting_adjust() - 1.0f);
-		session->params.filter_gradient = b_s_layer.filter_gradients();
-		session->params.filter_cross = b_s_layer.filter_cross() && session->buffers->params.cross_denoising;
-
-		session->start_denoise();
-		session->wait();
-
-		delete session->buffers;
-		session->buffers = NULL;
-	}
-}
-
-bool can_denoise_render_result(BL::RenderResult& b_rr)
-{
-	/* Since the RenderResult may contain multiple layers,
-	 * this function returns true if at least one of them can be denoised. */
-	BL::RenderResult::layers_iterator b_layer_iter;
-	BL::RenderLayer::passes_iterator b_pass_iter;
-	for(b_rr.layers.begin(b_layer_iter); b_layer_iter != b_rr.layers.end(); ++b_layer_iter) {
-		int denoising_passes = DENOISING_PASS_NONE;
-		for(b_layer_iter->passes.begin(b_pass_iter); b_pass_iter != b_layer_iter->passes.end(); ++b_pass_iter) {
-			denoising_passes |= BlenderSync::get_denoising_pass_type(*b_pass_iter);
-		}
-		if((~denoising_passes & DENOISING_PASS_REQUIRED) == 0) {
-			return true;
-		}
-	}
-	return false;
-}
-
 CCL_NAMESPACE_END
diff --git a/intern/cycles/blender/blender_session.h b/intern/cycles/blender/blender_session.h
index cf8def676b..7c302f3bfa 100644
--- a/intern/cycles/blender/blender_session.h
+++ b/intern/cycles/blender/blender_session.h
@@ -46,10 +46,6 @@ public:
 	               BL::RegionView3D& b_rv3d,
 	               int width, int height);
 
-	BlenderSession(BL::RenderEngine& b_engine,
-	               BL::UserPreferences& b_userpref,
-	               BL::Scene& b_scene);
-
 	~BlenderSession();
 
 	void create();
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp
index c30798f7c6..aeba35544a 100644
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/render/session.cpp
@@ -46,7 +46,7 @@ Session::Session(const SessionParams& params_)
 : params(params_),
   tile_manager(params.progressive, params.samples, params.tile_size, params.start_resolution,
        params.background == false || params.progressive_refine, params.background, params.tile_order,
-       max(params.device.multi_devices.size(), 1), params.only_denoise),
+       max(params.device.multi_devices.size(), 1)),
   stats()
 {
 	device_use_gl = ((params.device.type != DEVICE_CPU) && !params.background);
@@ -132,11 +132,6 @@ void Session::start()
 	session_thread = new thread(function_bind(&Session::run, this));
 }
 
-void Session::start_denoise()
-{
-	session_thread = new thread(function_bind(&Session::run_denoise, this));
-}
-
 bool Session::ready_to_reset()
 {
 	double dt = time_dt() - reset_time;
@@ -778,79 +773,6 @@ void Session::run()
 		progress.set_update();
 }
 
-void Session::run_denoise()
-{
-	if(!progress.get_cancel()) {
-		if(!kernels_loaded) {
-			progress.set_status("Loading render kernels (may take a few minutes the first time)");
-
-			DeviceRequestedFeatures requested_features;
-			if(!device->load_kernels(requested_features)) {
-				string message = device->error_message();
-				if(message.empty())
-					message = "Failed loading render kernel, see console for errors";
-
-				progress.set_error(message);
-				progress.set_status("Error", message);
-				progress.set_update();
-				return;
-			}
-
-			kernels_loaded = true;
-		}
-
-		progress.reset_sample();
-		tile_manager.reset(buffers->params, params.samples);
-		progress.set_total_pixel_samples(tile_manager.state.total_pixel_samples);
-		tile_manager.state.global_buffers = buffers;
-		progress.set_render_start_time();
-
-		/* Set up KernelData. */
-		KernelData kernel_data;
-		kernel_data.integrator.half_window = params.half_window;
-		kernel_data.film.pass_stride = buffers->params.get_passes_size();
-		kernel_data.film.pass_denoising = buffers->params.get_denoise_offset();
-		kernel_data.film.pass_no_denoising = buffers->params.selective_denoising? kernel_data.film.pas

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list