diff --git a/openpype/hosts/max/api/lib.py b/openpype/hosts/max/api/lib.py index 0477b43182..a28ec4b6af 100644 --- a/openpype/hosts/max/api/lib.py +++ b/openpype/hosts/max/api/lib.py @@ -151,3 +151,8 @@ def set_framerange(startFrame, endFrame): if startFrame is not None and endFrame is not None: frameRange = "{0}-{1}".format(startFrame, endFrame) rt.rendPickupFrames = frameRange + +def get_multipass_setting(project_setting=None): + return (project_setting["max"] + ["RenderSettings"] + ["multipass"]) diff --git a/openpype/modules/deadline/plugins/publish/submit_3dmax_deadline.py b/openpype/modules/deadline/plugins/publish/submit_3dmax_deadline.py index 656f550e9e..d7716527b1 100644 --- a/openpype/modules/deadline/plugins/publish/submit_3dmax_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_3dmax_deadline.py @@ -6,7 +6,11 @@ import requests import pyblish.api from openpype.pipeline import legacy_io -from openpype.hosts.max.api.lib import get_current_renderer +from openpype.settings import get_project_settings +from openpype.hosts.max.api.lib import ( + get_current_renderer, + get_multipass_setting +) from openpype.hosts.max.api.lib_rendersettings import RenderSettings @@ -154,7 +158,18 @@ class MaxSubmitRenderDeadline(pyblish.api.InstancePlugin): self.log.info("Ensuring output directory exists: %s" % dirname) os.makedirs(dirname) + plugin_data = {} + project_setting = get_project_settings( + legacy_io.Session["AVALON_PROJECT"] + ) + + multipass = get_multipass_setting(project_setting) + if multipass: + plugin_data["DisableMultipass"] = 0 + else: + plugin_data["DisableMultipass"] = 1 + if self.use_published: old_output_dir = os.path.dirname(expected_files[0]) output_beauty = RenderSettings().get_renderoutput(instance.name, diff --git a/openpype/modules/deadline/plugins/publish/submit_publish_job.py b/openpype/modules/deadline/plugins/publish/submit_publish_job.py index 22a5069ac2..505b940356 100644 --- a/openpype/modules/deadline/plugins/publish/submit_publish_job.py +++ b/openpype/modules/deadline/plugins/publish/submit_publish_job.py @@ -126,7 +126,8 @@ class ProcessSubmittedJobOnFarm(pyblish.api.InstancePlugin): aov_filter = {"maya": [r".*([Bb]eauty).*"], "aftereffects": [r".*"], # for everything from AE "harmony": [r".*"], # for everything from AE - "celaction": [r".*"]} + "celaction": [r".*"], + "max": [r".*"]} environ_job_filter = [ "OPENPYPE_METADATA_FILE" diff --git a/openpype/settings/defaults/project_settings/deadline.json b/openpype/settings/defaults/project_settings/deadline.json index 24d1f7405b..7a5903d8e0 100644 --- a/openpype/settings/defaults/project_settings/deadline.json +++ b/openpype/settings/defaults/project_settings/deadline.json @@ -115,6 +115,9 @@ ], "harmony": [ ".*" + ], + "max": [ + ".*" ] } } diff --git a/openpype/settings/defaults/project_settings/max.json b/openpype/settings/defaults/project_settings/max.json index 617e298310..84e0c7dba7 100644 --- a/openpype/settings/defaults/project_settings/max.json +++ b/openpype/settings/defaults/project_settings/max.json @@ -2,6 +2,7 @@ "RenderSettings": { "default_render_image_folder": "renders/3dsmax", "aov_separator": "underscore", - "image_format": "exr" + "image_format": "exr", + "multipass": true } } \ No newline at end of file diff --git a/openpype/settings/entities/schemas/projects_schema/schema_project_max.json b/openpype/settings/entities/schemas/projects_schema/schema_project_max.json index fbd9358c74..8a283c1acc 100644 --- a/openpype/settings/entities/schemas/projects_schema/schema_project_max.json +++ b/openpype/settings/entities/schemas/projects_schema/schema_project_max.json @@ -44,6 +44,11 @@ {"tga": "tga"}, {"dds": "dds"} ] + }, + { + "type": "boolean", + "key": "multipass", + "label": "multipass" } ] }