[af3dfd81ba1] temp_cryptomatte: Merged Lukasâ UI changes
Stefan Werner
noreply at git.blender.org
Fri Nov 3 21:09:33 CET 2017
Commit: af3dfd81ba1c3248a1e26378bab6762bef3a96b2
Author: Stefan Werner
Date: Thu Mar 30 13:36:51 2017 +0200
Branches: temp_cryptomatte
https://developer.blender.org/rBaf3dfd81ba1c3248a1e26378bab6762bef3a96b2
Merged Lukas’ UI changes
===================================================================
M intern/cycles/blender/addon/properties.py
M intern/cycles/blender/addon/ui.py
M intern/cycles/blender/blender_sync.cpp
===================================================================
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index a8a0f0bfc70..ebd4f8e2d9b 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -140,6 +140,11 @@ enum_texture_limit = (
('8192', "8192", "Limit texture size to 8192 pixels", 7),
)
+enum_aov_types = (
+ ('VALUE', "Value", "Write a Value pass", 0),
+ ('COLOR', "Color", "Write a color pass", 1),
+ )
+
class CyclesRenderSettings(bpy.types.PropertyGroup):
@classmethod
def register(cls):
@@ -1166,6 +1171,12 @@ class CyclesCurveRenderSettings(bpy.types.PropertyGroup):
def unregister(cls):
del bpy.types.Scene.cycles_curves
+class CyclesAOVSettings(bpy.types.PropertyGroup):
+ @classmethod
+ def register(cls):
+ cls.name = StringProperty(name="Name")
+ cls.type = EnumProperty(name="Type", items=enum_aov_types, default='COLOR')
+
class CyclesRenderLayerSettings(bpy.types.PropertyGroup):
@classmethod
def register(cls):
@@ -1194,6 +1205,8 @@ class CyclesRenderLayerSettings(bpy.types.PropertyGroup):
description="Store Debug Ray Bounces pass",
default=False,
)
+ cls.aovs = bpy.props.CollectionProperty(type=CyclesAOVSettings)
+ cls.active_aov = IntProperty(default=0)
@classmethod
def unregister(cls):
@@ -1357,6 +1370,7 @@ def register():
bpy.utils.register_class(CyclesCurveSettings)
bpy.utils.register_class(CyclesDeviceSettings)
bpy.utils.register_class(CyclesPreferences)
+ bpy.utils.register_class(CyclesAOVSettings)
bpy.utils.register_class(CyclesRenderLayerSettings)
@@ -1373,4 +1387,5 @@ def unregister():
bpy.utils.unregister_class(CyclesCurveSettings)
bpy.utils.unregister_class(CyclesDeviceSettings)
bpy.utils.unregister_class(CyclesPreferences)
+ bpy.utils.unregister_class(CyclesAOVSettings)
bpy.utils.unregister_class(CyclesRenderLayerSettings)
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index ea5bc8979c0..1f3950a1898 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -433,6 +433,41 @@ class CyclesRender_PT_performance(CyclesButtonsPanel, Panel):
row.active = not cscene.debug_use_spatial_splits
row.prop(cscene, "debug_bvh_time_steps")
+class CyclesRender_AOV_add(bpy.types.Operator):
+ """Add an AOV pass"""
+ bl_idname="scenerenderlayer.aov_add"
+ bl_label="Add AOV"
+
+ def execute(self, context):
+ scene = context.scene
+ rd = scene.render
+ rl = rd.layers.active
+ crl = rl.cycles
+
+ crl.aovs.add()
+ return {'FINISHED'}
+
+class CyclesRender_AOV_delete(bpy.types.Operator):
+ """Delete an AOV pass"""
+ bl_idname="scenerenderlayer.aov_delete"
+ bl_label="Delete AOV"
+
+ def execute(self, context):
+ scene = context.scene
+ rd = scene.render
+ rl = rd.layers.active
+ crl = rl.cycles
+
+ crl.aovs.remove(crl.active_aov)
+ return {'FINISHED'}
+
+class CyclesAOVList(bpy.types.UIList):
+ def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
+ row = layout.row()
+ row.label("", icon='RENDER_RESULT')
+ split = row.split(percentage=0.65, align=True)
+ split.prop(item, "name", text="")
+ split.prop(item, "type", text="")
class CyclesRender_PT_layer_options(CyclesButtonsPanel, Panel):
bl_label = "Layer"
@@ -537,6 +572,13 @@ class CyclesRender_PT_layer_passes(CyclesButtonsPanel, Panel):
col.prop(crl, "pass_debug_bvh_intersections")
col.prop(crl, "pass_debug_ray_bounces")
+ layout.label("AOVs:")
+ crl = rl.cycles
+ row = layout.row()
+ row.template_list("CyclesAOVList", "", crl, "aovs", crl, "active_aov")
+ sub = row.column(align=True)
+ sub.operator("scenerenderlayer.aov_add", icon='ZOOMIN', text="")
+ sub.operator("scenerenderlayer.aov_delete", icon='ZOOMOUT', text="")
class CyclesRender_PT_views(CyclesButtonsPanel, Panel):
bl_label = "Views"
@@ -1765,6 +1807,9 @@ classes = (
CyclesRender_PT_debug,
CyclesParticle_PT_CurveSettings,
CyclesScene_PT_simplify,
+ CyclesAOVList,
+ CyclesRender_AOV_add,
+ CyclesRender_AOV_delete,
)
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 17d2378b7ab..7dd168a6a3d 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -544,8 +544,8 @@ array<Pass> BlenderSync::sync_render_passes(BL::RenderLayer& b_rlay,
Pass::add(pass_type, passes);
}
-#ifdef __KERNEL_DEBUG__
PointerRNA crp = RNA_pointer_get(&b_srlay.ptr, "cycles");
+#ifdef __KERNEL_DEBUG__
if(get_boolean(crp, "pass_debug_bvh_traversed_nodes")) {
b_engine.add_pass("Debug BVH Traversed Nodes", 1, "X", b_srlay.name().c_str());
Pass::add(PASS_BVH_TRAVERSED_NODES, passes);
@@ -564,6 +564,15 @@ array<Pass> BlenderSync::sync_render_passes(BL::RenderLayer& b_rlay,
}
#endif
+ RNA_BEGIN(&crp, b_aov, "aovs") {
+ bool is_color = RNA_enum_get(&b_aov, "type");
+ string name = get_string(b_aov, "name");
+ AOV aov = { ustring(name), 9999, is_color };
+ passes.add(aov);
+ string passname = string_printf("AOV %s", name.c_str());
+ b_engine.add_pass(is_color ? 3 : 1, passname.c_str(), b_srlay.name().c_str(), NULL, is_color ? "RGB" : "X");
+ } RNA_END
+
return passes;
}
More information about the Bf-blender-cvs
mailing list