Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'release/scripts/startup/bl_ui/properties_view_layer.py')
-rw-r--r--release/scripts/startup/bl_ui/properties_view_layer.py79
1 files changed, 73 insertions, 6 deletions
diff --git a/release/scripts/startup/bl_ui/properties_view_layer.py b/release/scripts/startup/bl_ui/properties_view_layer.py
index afa00bb50c2..27df3b10853 100644
--- a/release/scripts/startup/bl_ui/properties_view_layer.py
+++ b/release/scripts/startup/bl_ui/properties_view_layer.py
@@ -17,7 +17,16 @@
# ##### END GPL LICENSE BLOCK #####
# <pep8 compliant>
-from bpy.types import Panel
+from bpy.types import Panel, UIList
+
+
+class VIEWLAYER_UL_aov(UIList):
+ def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
+ row = layout.row()
+ split = row.split(factor=0.65)
+ icon = 'NONE' if item.is_valid else 'ERROR'
+ split.row().prop(item, "name", text="", icon=icon, emboss=False)
+ split.row().prop(item, "type", text="", emboss=False)
class ViewLayerButtonsPanel:
@@ -49,7 +58,7 @@ class VIEWLAYER_PT_layer(ViewLayerButtonsPanel, Panel):
col.prop(rd, "use_single_layer", text="Render Single Layer")
-class VIEWLAYER_PT_eevee_layer_passes(ViewLayerButtonsPanel, Panel):
+class VIEWLAYER_PT_layer_passes(ViewLayerButtonsPanel, Panel):
bl_label = "Passes"
COMPAT_ENGINES = {'BLENDER_EEVEE'}
@@ -59,7 +68,7 @@ class VIEWLAYER_PT_eevee_layer_passes(ViewLayerButtonsPanel, Panel):
class VIEWLAYER_PT_eevee_layer_passes_data(ViewLayerButtonsPanel, Panel):
bl_label = "Data"
- bl_parent_id = "VIEWLAYER_PT_eevee_layer_passes"
+ bl_parent_id = "VIEWLAYER_PT_layer_passes"
COMPAT_ENGINES = {'BLENDER_EEVEE'}
@@ -81,7 +90,7 @@ class VIEWLAYER_PT_eevee_layer_passes_data(ViewLayerButtonsPanel, Panel):
class VIEWLAYER_PT_eevee_layer_passes_light(ViewLayerButtonsPanel, Panel):
bl_label = "Light"
- bl_parent_id = "VIEWLAYER_PT_eevee_layer_passes"
+ bl_parent_id = "VIEWLAYER_PT_layer_passes"
COMPAT_ENGINES = {'BLENDER_EEVEE'}
def draw(self, context):
@@ -116,7 +125,7 @@ class VIEWLAYER_PT_eevee_layer_passes_light(ViewLayerButtonsPanel, Panel):
class VIEWLAYER_PT_eevee_layer_passes_effects(ViewLayerButtonsPanel, Panel):
bl_label = "Effects"
- bl_parent_id = "VIEWLAYER_PT_eevee_layer_passes"
+ bl_parent_id = "VIEWLAYER_PT_layer_passes"
COMPAT_ENGINES = {'BLENDER_EEVEE'}
def draw(self, context):
@@ -135,12 +144,70 @@ class VIEWLAYER_PT_eevee_layer_passes_effects(ViewLayerButtonsPanel, Panel):
col.active = scene_eevee.use_bloom
+class VIEWLAYER_PT_layer_passes_aov(ViewLayerButtonsPanel, Panel):
+ bl_label = "Shader AOV"
+ bl_parent_id = "VIEWLAYER_PT_layer_passes"
+ COMPAT_ENGINES = {'BLENDER_EEVEE'}
+
+ def draw(self, context):
+ layout = self.layout
+
+ layout.use_property_split = True
+ layout.use_property_decorate = False
+
+ view_layer = context.view_layer
+
+ row = layout.row()
+ col = row.column()
+ col.template_list("VIEWLAYER_UL_aov", "aovs", view_layer, "aovs", view_layer, "active_aov_index", rows=2)
+
+ col = row.column()
+ sub = col.column(align=True)
+ sub.operator("scene.view_layer_add_aov", icon='ADD', text="")
+ sub.operator("scene.view_layer_remove_aov", icon='REMOVE', text="")
+
+ aov = view_layer.active_aov
+ if aov and not aov.is_valid:
+ layout.label(text="Conflicts with another render pass with the same name", icon='ERROR')
+
+
+class ViewLayerCryptomattePanel(ViewLayerButtonsPanel, Panel):
+ bl_label = "Cryptomatte"
+
+ def draw(self, context):
+ layout = self.layout
+
+ layout.use_property_split = True
+ layout.use_property_decorate = False
+
+ view_layer = context.view_layer
+
+ col = layout.column()
+ col.prop(view_layer, "use_pass_cryptomatte_object", text="Object")
+ col.prop(view_layer, "use_pass_cryptomatte_material", text="Material")
+ col.prop(view_layer, "use_pass_cryptomatte_asset", text="Asset")
+ col = layout.column()
+ col.active = any((view_layer.use_pass_cryptomatte_object,
+ view_layer.use_pass_cryptomatte_material,
+ view_layer.use_pass_cryptomatte_asset))
+ col.prop(view_layer, "pass_cryptomatte_depth", text="Levels")
+ col.prop(view_layer, "use_pass_cryptomatte_accurate", text="Accurate Mode")
+
+
+class VIEWLAYER_PT_layer_passes_cryptomatte(ViewLayerCryptomattePanel):
+ bl_parent_id = "VIEWLAYER_PT_layer_passes"
+ COMPAT_ENGINES = {'BLENDER_EEVEE'}
+
+
classes = (
VIEWLAYER_PT_layer,
- VIEWLAYER_PT_eevee_layer_passes,
+ VIEWLAYER_PT_layer_passes,
VIEWLAYER_PT_eevee_layer_passes_data,
VIEWLAYER_PT_eevee_layer_passes_light,
VIEWLAYER_PT_eevee_layer_passes_effects,
+ VIEWLAYER_PT_layer_passes_cryptomatte,
+ VIEWLAYER_PT_layer_passes_aov,
+ VIEWLAYER_UL_aov,
)
if __name__ == "__main__": # only for live edit.