[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