From 870e3394514e562740148b246812841262a13656 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Samohel?= Date: Wed, 5 Oct 2022 16:37:16 +0200 Subject: [PATCH 1/5] :bug: set default value for render setup option RenderSetupIncludeLights must be either set to 1 or 0 or not set at all --- .../modules/deadline/plugins/publish/submit_maya_deadline.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py index 44f2b5b2b46..5021c0796b0 100644 --- a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py @@ -190,7 +190,9 @@ def get_plugin_info(self): Version=cmds.about(version=True), RenderLayer=instance.data['setMembers'], Renderer=instance.data["renderer"], - RenderSetupIncludeLights=instance.data.get("renderSetupIncludeLights"), # noqa + # Set it to default Maya behaviour if it cannot be determined + # from instance (but it should be, by the Collector). + RenderSetupIncludeLights=instance.data.get("renderSetupIncludeLights", 1), # noqa ProjectPath=context.data["workspaceDir"], UsingRenderLayers=True, ) From 2a2326971a677dc4bad6f87cfd05b9a03cf49574 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Samohel?= Date: Thu, 6 Oct 2022 16:30:41 +0200 Subject: [PATCH 2/5] :sparkles: add validator for RenderSetupIncludeLights --- .../plugins/publish/submit_maya_deadline.py | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py index 5021c0796b0..e2325711223 100644 --- a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py @@ -36,6 +36,17 @@ from openpype_modules.deadline.abstract_submit_deadline import DeadlineJobInfo +def _validate_deadline_bool_value(instance, attribute, value): + if not isinstance(value, (str, bool)): + raise TypeError( + "Attribute {} must be str or bool.".format(attribute)) + if value not in {"1", "0", True, False}: + raise ValueError( + ("Value of {} must be one of " + "'0', '1', True, False").format(attribute) + ) + + @attr.s class MayaPluginInfo: SceneFile = attr.ib(default=None) # Input @@ -46,7 +57,8 @@ class MayaPluginInfo: RenderLayer = attr.ib(default=None) # Render only this layer Renderer = attr.ib(default=None) ProjectPath = attr.ib(default=None) # Resolve relative references - RenderSetupIncludeLights = attr.ib(default=None) # Include all lights flag + RenderSetupIncludeLights = attr.ib( + default="1", validator=_validate_deadline_bool_value) # Include all lights flag @attr.s @@ -185,14 +197,17 @@ def get_plugin_info(self): instance = self._instance context = instance.context + # Set it to default Maya behaviour if it cannot be determined + # from instance (but it should be, by the Collector). Also + rs_include_lights = instance.data.get("renderSetupIncludeLights", "1") + if rs_include_lights not in {"1", "0", True, False}: + rs_include_lights = "1" plugin_info = MayaPluginInfo( SceneFile=self.scene_path, Version=cmds.about(version=True), RenderLayer=instance.data['setMembers'], Renderer=instance.data["renderer"], - # Set it to default Maya behaviour if it cannot be determined - # from instance (but it should be, by the Collector). - RenderSetupIncludeLights=instance.data.get("renderSetupIncludeLights", 1), # noqa + RenderSetupIncludeLights=rs_include_lights, # noqa ProjectPath=context.data["workspaceDir"], UsingRenderLayers=True, ) From 87584b5f4976db087d04e738f0fdfec7fd56f773 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Samohel?= Date: Thu, 6 Oct 2022 16:34:19 +0200 Subject: [PATCH 3/5] :rotating_light: fix hound :dog: --- .../modules/deadline/plugins/publish/submit_maya_deadline.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py index e2325711223..3f0905c5860 100644 --- a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py @@ -57,8 +57,9 @@ class MayaPluginInfo: RenderLayer = attr.ib(default=None) # Render only this layer Renderer = attr.ib(default=None) ProjectPath = attr.ib(default=None) # Resolve relative references + # Include all lights flag RenderSetupIncludeLights = attr.ib( - default="1", validator=_validate_deadline_bool_value) # Include all lights flag + default="1", validator=_validate_deadline_bool_value) @attr.s From 467a6d89c8cfdc30e86786914e8513bcbed2022a Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Fri, 7 Oct 2022 14:19:11 +0200 Subject: [PATCH 4/5] :recycle: set proper default value from the settings --- .../plugins/publish/submit_maya_deadline.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py index 3f0905c5860..67771eae506 100644 --- a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py @@ -199,10 +199,18 @@ def get_plugin_info(self): context = instance.context # Set it to default Maya behaviour if it cannot be determined - # from instance (but it should be, by the Collector). Also - rs_include_lights = instance.data.get("renderSetupIncludeLights", "1") + # from instance (but it should be, by the Collector). + + default_rs_include_lights = instance.context.data\ + .get('project_settings')\ + .get('maya')\ + .get('RenderSettings')\ + .get('enable_all_lights') + + rs_include_lights = instance.data.get( + "renderSetupIncludeLights", default_rs_include_lights) if rs_include_lights not in {"1", "0", True, False}: - rs_include_lights = "1" + rs_include_lights = default_rs_include_lights plugin_info = MayaPluginInfo( SceneFile=self.scene_path, Version=cmds.about(version=True), From 53487001c53dfe760221e0deed4d5bc49077dab8 Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Fri, 7 Oct 2022 18:31:13 +0200 Subject: [PATCH 5/5] :recycle: flipping default value and changing settings access --- .../deadline/plugins/publish/submit_maya_deadline.py | 11 ++++++----- openpype/settings/defaults/project_settings/maya.json | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py index 67771eae506..feb20c9e8a4 100644 --- a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py @@ -201,11 +201,12 @@ def get_plugin_info(self): # Set it to default Maya behaviour if it cannot be determined # from instance (but it should be, by the Collector). - default_rs_include_lights = instance.context.data\ - .get('project_settings')\ - .get('maya')\ - .get('RenderSettings')\ - .get('enable_all_lights') + default_rs_include_lights = ( + instance.context.data['project_settings'] + ['maya'] + ['RenderSettings'] + ['enable_all_lights'] + ) rs_include_lights = instance.data.get( "renderSetupIncludeLights", default_rs_include_lights) diff --git a/openpype/settings/defaults/project_settings/maya.json b/openpype/settings/defaults/project_settings/maya.json index 76ef0a73382..cacedb6f7fe 100644 --- a/openpype/settings/defaults/project_settings/maya.json +++ b/openpype/settings/defaults/project_settings/maya.json @@ -35,7 +35,7 @@ "RenderSettings": { "apply_render_settings": true, "default_render_image_folder": "renders", - "enable_all_lights": false, + "enable_all_lights": true, "aov_separator": "underscore", "reset_current_frame": false, "arnold_renderer": {