[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