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. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to