[Bf-blender-cvs] [2687b63bf7] temp-cycles-denoising: Cycles Denoising: Remove Render Pass changes

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


Commit: 2687b63bf76f0e77847df6d547d038b5d3dbc0f5
Author: Lukas Stockner
Date:   Sun Feb 12 01:19:33 2017 +0100
Branches: temp-cycles-denoising
https://developer.blender.org/rB2687b63bf76f0e77847df6d547d038b5d3dbc0f5

Cycles Denoising: Remove Render Pass changes

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

M	intern/cycles/blender/addon/properties.py
M	intern/cycles/blender/addon/ui.py
M	intern/cycles/blender/blender_python.cpp
M	intern/cycles/blender/blender_session.cpp
M	intern/cycles/blender/blender_sync.cpp
M	intern/cycles/blender/blender_sync.h
M	source/blender/blenkernel/BKE_blender_version.h
M	source/blender/blenkernel/intern/image.c
M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/versioning_270.c
M	source/blender/blenloader/intern/writefile.c
M	source/blender/compositor/CMakeLists.txt
M	source/blender/compositor/intern/COM_NodeGraph.cpp
M	source/blender/compositor/nodes/COM_ImageNode.cpp
M	source/blender/compositor/nodes/COM_RenderLayersNode.cpp
M	source/blender/compositor/nodes/COM_RenderLayersNode.h
M	source/blender/compositor/operations/COM_RenderLayersProg.cpp
M	source/blender/compositor/operations/COM_RenderLayersProg.h
M	source/blender/editors/render/render_internal.c
M	source/blender/editors/space_image/image_buttons.c
M	source/blender/editors/space_node/drawnode.c
M	source/blender/editors/space_node/node_edit.c
M	source/blender/editors/space_view3d/space_view3d.c
M	source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
M	source/blender/makesdna/DNA_node_types.h
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesrna/intern/CMakeLists.txt
M	source/blender/makesrna/intern/rna_nodetree.c
M	source/blender/makesrna/intern/rna_render.c
M	source/blender/makesrna/intern/rna_scene.c
M	source/blender/nodes/CMakeLists.txt
M	source/blender/nodes/NOD_composite.h
M	source/blender/nodes/composite/node_composite_tree.c
M	source/blender/nodes/composite/nodes/node_composite_image.c
M	source/blender/render/CMakeLists.txt
M	source/blender/render/extern/include/RE_engine.h
M	source/blender/render/extern/include/RE_pipeline.h
M	source/blender/render/intern/include/render_result.h
M	source/blender/render/intern/source/envmap.c
M	source/blender/render/intern/source/external_engine.c
M	source/blender/render/intern/source/pipeline.c
M	source/blender/render/intern/source/render_result.c
M	source/blender/render/intern/source/rendercore.c
M	source/blender/render/intern/source/zbuf.c
M	source/blenderplayer/bad_level_call_stubs/stubs.c
M	source/tools

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

diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index 1e068566b4..5c51f9afc2 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -1156,39 +1156,6 @@ class CyclesCurveRenderSettings(bpy.types.PropertyGroup):
     def unregister(cls):
         del bpy.types.Scene.cycles_curves
 
-class CyclesRenderLayerSettings(bpy.types.PropertyGroup):
-    @classmethod
-    def register(cls):
-        bpy.types.SceneRenderLayer.cycles = PointerProperty(
-                name="Cycles SceneRenderLayer Settings",
-                description="Cycles SceneRenderLayer Settings",
-                type=cls,
-                )
-        cls.pass_debug_bvh_traversed_nodes = BoolProperty(
-                name="Debug BVH Traversed Nodes",
-                description="Store Debug BVH Traversal Steps pass",
-                default=False,
-                )
-        cls.pass_debug_bvh_traversed_instances = BoolProperty(
-                name="Debug BVH Traversed Instances",
-                description="Store Debug BVH Traversed Instances pass",
-                default=False,
-                )
-        cls.pass_debug_ray_bounces = BoolProperty(
-                name="Debug Ray Bounces",
-                description="Store Debug Ray Bounces pass",
-                default=False,
-                )
-        cls.pass_debug_bvh_intersections = BoolProperty(
-                name="Debug BVH Intersections",
-                description="Store Debug BVH Intersections pass",
-                default=False,
-                )
-
-    @classmethod
-    def unregister(cls):
-        del bpy.types.SceneRenderLayer.cycles
-
 
 class CyclesCurveSettings(bpy.types.PropertyGroup):
     @classmethod
@@ -1347,7 +1314,6 @@ def register():
     bpy.utils.register_class(CyclesCurveSettings)
     bpy.utils.register_class(CyclesDeviceSettings)
     bpy.utils.register_class(CyclesPreferences)
-    bpy.utils.register_class(CyclesRenderLayerSettings)
 
 
 def unregister():
@@ -1363,4 +1329,3 @@ def unregister():
     bpy.utils.unregister_class(CyclesCurveSettings)
     bpy.utils.unregister_class(CyclesDeviceSettings)
     bpy.utils.unregister_class(CyclesPreferences)
-    bpy.utils.unregister_class(CyclesRenderLayerSettings)
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index 74b61b02e3..211dd4a4d7 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -479,14 +479,11 @@ class CyclesRender_PT_layer_passes(CyclesButtonsPanel, Panel):
     bl_options = {'DEFAULT_CLOSED'}
 
     def draw(self, context):
-        import _cycles
-
         layout = self.layout
 
         scene = context.scene
         rd = scene.render
         rl = rd.layers.active
-        crl = rl.cycles
 
         split = layout.split()
 
@@ -533,12 +530,8 @@ class CyclesRender_PT_layer_passes(CyclesButtonsPanel, Panel):
         col.prop(rl, "use_pass_emit", text="Emission")
         col.prop(rl, "use_pass_environment")
 
-        if _cycles.with_cycles_debug:
-          col = layout.column()
-          col.prop(crl, "pass_debug_bvh_traversed_nodes")
-          col.prop(crl, "pass_debug_bvh_traversed_instances")
-          col.prop(crl, "pass_debug_ray_bounces")
-          col.prop(crl, "pass_debug_bvh_intersections")
+        if hasattr(rd, "debug_pass_type"):
+            layout.prop(rd, "debug_pass_type")
 
 
 class CyclesRender_PT_views(CyclesButtonsPanel, Panel):
diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp
index 55f53400bf..438abc49f8 100644
--- a/intern/cycles/blender/blender_python.cpp
+++ b/intern/cycles/blender/blender_python.cpp
@@ -135,24 +135,6 @@ void python_thread_state_restore(void **python_thread_state)
 	*python_thread_state = NULL;
 }
 
-static PointerRNA get_user_preferences()
-{
-	PyObject *bpy = PyImport_ImportModule("bpy");
-	PyObject *pycontext = PyObject_GetAttrString(bpy, "context");
-	PyObject *pyuserpref = PyObject_GetAttrString(pycontext, "user_preferences");
-	PyObject *pyptr = PyObject_CallMethod(pyuserpref, "as_pointer", NULL);
-
-	PointerRNA ptr;
-	RNA_pointer_create(NULL, &RNA_UserPreferences, (void*)PyLong_AsVoidPtr(pyptr), &ptr);
-
-	Py_DECREF(pyptr);
-	Py_DECREF(pyuserpref);
-	Py_DECREF(pycontext);
-	Py_DECREF(bpy);
-
-	return ptr;
-}
-
 static const char *PyC_UnicodeAsByte(PyObject *py_str, PyObject **coerce)
 {
 	const char *result = _PyUnicode_AsString(py_str);
@@ -778,14 +760,6 @@ void *CCL_python_module_init()
 	PyModule_AddStringConstant(mod, "osl_version_string", "unknown");
 #endif
 
-#ifdef WITH_CYCLES_DEBUG
-	PyModule_AddObject(mod, "with_cycles_debug", Py_True);
-	Py_INCREF(Py_True);
-#else
-	PyModule_AddObject(mod, "with_cycles_debug", Py_False);
-	Py_INCREF(Py_False);
-#endif
-
 #ifdef WITH_NETWORK
 	PyModule_AddObject(mod, "with_network", Py_True);
 	Py_INCREF(Py_True);
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index eae4db438c..ace482b661 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -239,6 +239,90 @@ void BlenderSession::free_session()
 	delete session;
 }
 
+static PassType get_pass_type(BL::RenderPass& b_pass)
+{
+	switch(b_pass.type()) {
+		case BL::RenderPass::type_COMBINED:
+			return PASS_COMBINED;
+
+		case BL::RenderPass::type_Z:
+			return PASS_DEPTH;
+		case BL::RenderPass::type_MIST:
+			return PASS_MIST;
+		case BL::RenderPass::type_NORMAL:
+			return PASS_NORMAL;
+		case BL::RenderPass::type_OBJECT_INDEX:
+			return PASS_OBJECT_ID;
+		case BL::RenderPass::type_UV:
+			return PASS_UV;
+		case BL::RenderPass::type_VECTOR:
+			return PASS_MOTION;
+		case BL::RenderPass::type_MATERIAL_INDEX:
+			return PASS_MATERIAL_ID;
+
+		case BL::RenderPass::type_DIFFUSE_DIRECT:
+			return PASS_DIFFUSE_DIRECT;
+		case BL::RenderPass::type_GLOSSY_DIRECT:
+			return PASS_GLOSSY_DIRECT;
+		case BL::RenderPass::type_TRANSMISSION_DIRECT:
+			return PASS_TRANSMISSION_DIRECT;
+		case BL::RenderPass::type_SUBSURFACE_DIRECT:
+			return PASS_SUBSURFACE_DIRECT;
+
+		case BL::RenderPass::type_DIFFUSE_INDIRECT:
+			return PASS_DIFFUSE_INDIRECT;
+		case BL::RenderPass::type_GLOSSY_INDIRECT:
+			return PASS_GLOSSY_INDIRECT;
+		case BL::RenderPass::type_TRANSMISSION_INDIRECT:
+			return PASS_TRANSMISSION_INDIRECT;
+		case BL::RenderPass::type_SUBSURFACE_INDIRECT:
+			return PASS_SUBSURFACE_INDIRECT;
+
+		case BL::RenderPass::type_DIFFUSE_COLOR:
+			return PASS_DIFFUSE_COLOR;
+		case BL::RenderPass::type_GLOSSY_COLOR:
+			return PASS_GLOSSY_COLOR;
+		case BL::RenderPass::type_TRANSMISSION_COLOR:
+			return PASS_TRANSMISSION_COLOR;
+		case BL::RenderPass::type_SUBSURFACE_COLOR:
+			return PASS_SUBSURFACE_COLOR;
+
+		case BL::RenderPass::type_EMIT:
+			return PASS_EMISSION;
+		case BL::RenderPass::type_ENVIRONMENT:
+			return PASS_BACKGROUND;
+		case BL::RenderPass::type_AO:
+			return PASS_AO;
+		case BL::RenderPass::type_SHADOW:
+			return PASS_SHADOW;
+
+		case BL::RenderPass::type_DIFFUSE:
+		case BL::RenderPass::type_COLOR:
+		case BL::RenderPass::type_REFRACTION:
+		case BL::RenderPass::type_SPECULAR:
+		case BL::RenderPass::type_REFLECTION:
+			return PASS_NONE;
+#ifdef WITH_CYCLES_DEBUG
+		case BL::RenderPass::type_DEBUG:
+		{
+			switch(b_pass.debug_type()) {
+				case BL::RenderPass::debug_type_BVH_TRAVERSED_NODES:
+					return PASS_BVH_TRAVERSED_NODES;
+				case BL::RenderPass::debug_type_BVH_TRAVERSED_INSTANCES:
+					return PASS_BVH_TRAVERSED_INSTANCES;
+				case BL::RenderPass::debug_type_BVH_INTERSECTIONS:
+					return PASS_BVH_INTERSECTIONS;
+				case BL::RenderPass::debug_type_RAY_BOUNCES:
+					return PASS_RAY_BOUNCES;
+			}
+			break;
+		}
+#endif
+	}
+	
+	return PASS_NONE;
+}
+
 static ShaderEvalType get_shader_type(const string& pass_type)
 {
 	const char *shader_type = pass_type.c_str();
@@ -398,11 +482,22 @@ void BlenderSession::render()
 
 		/* add passes */
 		array<Pass> passes;
+		Pass::add(PASS_COMBINED, passes);
+
 		if(session_params.device.advanced_shading) {
-			passes = sync->sync_render_passes(b_rlay, *b_layer_iter);
-		}
-		else {
-			Pass::add(PASS_COMBINED, passes);
+
+			/* loop over passes */
+			BL::RenderLayer::passes_iterator b_pass_iter;
+
+			for(b_rlay.passes.begin(b_pass_iter); b_pass_iter != b_rlay.passes.end(); ++b_pass_iter) {
+				BL::RenderPass b_pass(*b_pass_iter);
+				PassType pass_type = get_pass_type(b_pass);
+
+				if(pass_type == PASS_MOTION && scene->integrator->motion_blur)
+					continue;
+				if(pass_type != PASS_NONE)
+					Pass::add(pass_type, passes);
+			}
 		}
 
 		buffer_params.passes = passes;
@@ -682,29 +777,20 @@ void BlenderSession::do_write_update_render_result(BL::RenderResult& b_rr,
 		for(b_rlay.passes.begin(b_iter); b_iter != b_rlay.passes.end(); ++b_iter) {
 			BL::RenderPass b_pass(*b_iter);
 
-			bool success;
-			int components = b_pass.channels();
-
 			/* find matching pass type */
-			DenoisingPassType denoising_pass = BlenderSync::get_denoising_pass_type(b_pass);
-			if(denoising_pass != DENOISING_PASS_NONE) {
-				success = buffers->get_denoising_rect(denoising_pass, exposure, sample, components, rect, &pixels[0]);
-			}
-			else {
-				PassType pass_type = BlenderSync::get_pass_type(b_pass);
-				success = buffers->get_pass_rect(pass_type, exposure, sample, components, rect, &pixels[0]);
-			}
+			PassType pass_type = get_pass_type(b_pass);
+			int components = b_pass.channels();
 
-			if(!success) {
+			/* copy pixels */
+			if(!buffers->get_pass_rect(pass_type, exposure, sample, components, rect, &pixels[0]))
 				memset(&pixels[0], 0, pixels.size()*sizeof(float));
-			}
 
 			b_pass.rect(&pixels[0]);
 		}
 	}
 	else {
 		/* copy combined pass */
-		BL::RenderPass b_combined_pass(b_rlay.passes.find_by_name("Combined", b_rview_name.c_str()));
+		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, sample, 4, rect, &pixels[0]))
 			b_combined_pass.rect(&pixels[0]);
 	}
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
inde

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list