From 62a6f4c4ad77b6c75799bd6b52b5452e111d6ebe Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 19 Oct 2022 22:24:28 +0800 Subject: [PATCH 01/23] Renderman setup for sample and display filters --- openpype/hosts/maya/api/lib_rendersettings.py | 45 +++++++++++- .../defaults/project_settings/maya.json | 6 ++ .../schemas/schema_maya_render_settings.json | 69 ++++++++++++++++++- 3 files changed, 118 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index 777a6ffbc9a..dad9dde114d 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -4,6 +4,7 @@ import maya.mel as mel import six import sys +import os from openpype.lib import Logger from openpype.api import ( @@ -29,7 +30,7 @@ class RenderSettings(object): _image_prefixes = { 'vray': get_current_project_settings()["maya"]["RenderSettings"]["vray_renderer"]["image_prefix"], # noqa 'arnold': get_current_project_settings()["maya"]["RenderSettings"]["arnold_renderer"]["image_prefix"], # noqa - 'renderman': 'maya///{aov_separator}', + 'renderman': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["image_prefix"], # noqa 'redshift': get_current_project_settings()["maya"]["RenderSettings"]["redshift_renderer"]["image_prefix"] # noqa } @@ -96,6 +97,9 @@ def set_default_renderer_settings(self, renderer=None): if renderer == "redshift": self._set_redshift_settings(width, height) + if renderer == "renderman": + self._set_renderman_settings(width, height) + def _set_arnold_settings(self, width, height): """Sets settings for Arnold.""" from mtoa.core import createOptions # noqa @@ -158,6 +162,45 @@ def _set_redshift_settings(self, width, height): cmds.setAttr("defaultResolution.height", height) self._additional_attribs_setter(additional_options) + def _set_renderman_settings(self, width, height): + """Sets settings for Renderman""" + rman_render_presets = ( + self._project_settings + ["maya"] + ["RenderSettings"] + ["renderman_renderer"] + ) + display_filters = rman_render_presets["display_filters"] + d_filters_number = len(display_filters) + for i in range(d_filters_number): + d_node = cmds.ls(typ=display_filters[i]) + if len(d_node) > 0: + filter_nodes = d_node[0] + else: + filter_nodes = cmds.createNode(display_filters[i]) + cmds.connectAttr(filter_nodes+".message", + "rmanGlobals.displayFilters[%i]"% i, + force=True) + + sample_filters = rman_render_presets["sample_filters"] + s_filters_number = len(sample_filters) + for n in range(s_filters_number): + s_node = cmds.ls(typ=sample_filters[n]) + if len(s_node) > 0: + filter_nodes = s_node[0] + else: + filter_nodes = cmds.createNode(sample_filters[n]) + cmds.connectAttr(filter_nodes+".message", + "rmanGlobals.sampleFilters[%i]"% n, + force=True) + + additional_options = rman_render_presets["additional_options"] + + self._set_global_output_settings() + cmds.setAttr("defaultResolution.width", width) + cmds.setAttr("defaultResolution.height", height) + self._additional_attribs_setter(additional_options) + def _set_vray_settings(self, aov_separator, width, height): # type: (str, int, int) -> None """Sets important settings for Vray.""" diff --git a/openpype/settings/defaults/project_settings/maya.json b/openpype/settings/defaults/project_settings/maya.json index 76ef0a73382..777a0bccb27 100644 --- a/openpype/settings/defaults/project_settings/maya.json +++ b/openpype/settings/defaults/project_settings/maya.json @@ -62,6 +62,12 @@ "force_combine": true, "aov_list": [], "additional_options": [] + }, + "renderman_renderer": { + "image_prefix": "maya///{aov_separator}", + "display_filters": [], + "sample_filters": [], + "additional_options": [] } }, "create": { diff --git a/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_render_settings.json b/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_render_settings.json index 6ee02ca78f2..a0b38906be4 100644 --- a/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_render_settings.json +++ b/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_render_settings.json @@ -418,6 +418,73 @@ } } ] - } + }, + { + "type": "dict", + "collapsible": true, + "key": "renderman_renderer", + "label": "Renderman Renderer", + "is_group": true, + "children": [ + { + "key": "image_prefix", + "label": "Image prefix template", + "type": "text" + }, + { + "key": "display_filters", + "label": "Display Filters", + "type": "enum", + "multiselection": true, + "defaults": "empty", + "enum_items": [ + {"PxrBackgroundDisplayFilter": "PxrBackgroundDisplayFilter"}, + {"PxrCopyAOVDisplayFilter": "PxrCopyAOVDisplayFilter"}, + {"PxrEdgeDetect":"PxrEdgeDetect"}, + {"PxrFilmicTonemapperDisplayFilter": "PxrFilmicTonemapperDisplayFilter"}, + {"PxrGradeDisplayFilter": "PxrGradeDisplayFilter"}, + {"PxrHalfBufferErrorFilter": "PxrHalfBufferErrorFilter"}, + {"PxrImageDisplayFilter": "PxrImageDisplayFilter"}, + {"PxrLightSaturation": "PxrLightSaturation"}, + {"PxrShadowDisplayFilter": "PxrShadowDisplayFilter"}, + {"PxrStylizedHatching": "PxrStylizedHatching"}, + {"PxrStylizedLines": "PxrStylizedLines"}, + {"PxrStylizedToon": "PxrStylizedToon"}, + {"PxrWhitePointDisplayFilter": "PxrWhitePointDisplayFilter"} + ] + }, + { + "key": "sample_filters", + "label": "Sample Filters", + "type": "enum", + "multiselection": true, + "defaults": "empty", + "enum_items": [ + {"PxrBackgroundSampleFilter": "PxrBackgroundSampleFilter"}, + {"PxrCopyAOVSampleFilter": "PxrCopyAOVSampleFilter"}, + {"PxrCryptomatte": "PxrCryptomatte"}, + {"PxrFilmicTonemapperSampleFilter": "PxrFilmicTonemapperSampleFilter"}, + {"PxrGradeSampleFilter": "PxrGradeSampleFilter"}, + {"PxrShadowFilter": "PxrShadowFilter"}, + {"PxrWatermarkFilter": "PxrWatermarkFilter"}, + {"PxrWhitePointSampleFilter": "PxrWhitePointSampleFilter"} + ] + }, + { + "type": "label", + "label": "Add additional options - put attribute and value, like Ci" + }, + { + "type": "dict-modifiable", + "store_as_list": true, + "key": "additional_options", + "label": "Additional Renderer Options", + "use_label_wrap": true, + "object_type": { + "type": "text" + } + } + ] + } ] } From 28dfc7b9f659e21189fe43faa1ca95b30546f005 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 19 Oct 2022 22:33:17 +0800 Subject: [PATCH 02/23] Renderman setup for sample and display filters --- openpype/hosts/maya/api/lib_rendersettings.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index dad9dde114d..ac3a68ca29a 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -4,7 +4,6 @@ import maya.mel as mel import six import sys -import os from openpype.lib import Logger from openpype.api import ( @@ -178,7 +177,8 @@ def _set_renderman_settings(self, width, height): filter_nodes = d_node[0] else: filter_nodes = cmds.createNode(display_filters[i]) - cmds.connectAttr(filter_nodes+".message", + + cmds.connectAttr(filter_nodes + ".message", "rmanGlobals.displayFilters[%i]"% i, force=True) @@ -190,7 +190,8 @@ def _set_renderman_settings(self, width, height): filter_nodes = s_node[0] else: filter_nodes = cmds.createNode(sample_filters[n]) - cmds.connectAttr(filter_nodes+".message", + + cmds.connectAttr(filter_nodes + ".message", "rmanGlobals.sampleFilters[%i]"% n, force=True) From bf5213a780892b42524d169068e04e6416eb066f Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 19 Oct 2022 22:34:35 +0800 Subject: [PATCH 03/23] Renderman setup for sample and display filters --- openpype/hosts/maya/api/lib_rendersettings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index ac3a68ca29a..c56d4aa9038 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -179,7 +179,7 @@ def _set_renderman_settings(self, width, height): filter_nodes = cmds.createNode(display_filters[i]) cmds.connectAttr(filter_nodes + ".message", - "rmanGlobals.displayFilters[%i]"% i, + "rmanGlobals.displayFilters[%i]" % i, force=True) sample_filters = rman_render_presets["sample_filters"] @@ -192,7 +192,7 @@ def _set_renderman_settings(self, width, height): filter_nodes = cmds.createNode(sample_filters[n]) cmds.connectAttr(filter_nodes + ".message", - "rmanGlobals.sampleFilters[%i]"% n, + "rmanGlobals.sampleFilters[%i]" % n, force=True) additional_options = rman_render_presets["additional_options"] From 769763c4751a41c47fd570b94767353fc1f296b1 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 26 Oct 2022 20:00:22 +0800 Subject: [PATCH 04/23] Renderman setup for sample and display filters --- openpype/hosts/maya/api/lib_rendersettings.py | 2 +- .../defaults/project_settings/maya.json | 60 ++++++++++++---- .../projects_schema/schema_project_maya.json | 70 +++++++++++++++++++ 3 files changed, 116 insertions(+), 16 deletions(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index c56d4aa9038..91dde16db3a 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -6,7 +6,7 @@ import sys from openpype.lib import Logger -from openpype.api import ( +from openpype.settings import ( get_project_settings, get_current_project_settings ) diff --git a/openpype/settings/defaults/project_settings/maya.json b/openpype/settings/defaults/project_settings/maya.json index 777a0bccb27..3b03bbe2ddf 100644 --- a/openpype/settings/defaults/project_settings/maya.json +++ b/openpype/settings/defaults/project_settings/maya.json @@ -1,5 +1,27 @@ { - "mel_workspace": "workspace -fr \"shaders\" \"renderData/shaders\";\nworkspace -fr \"images\" \"renders\";\nworkspace -fr \"particles\" \"particles\";\nworkspace -fr \"mayaAscii\" \"\";\nworkspace -fr \"mayaBinary\" \"\";\nworkspace -fr \"scene\" \"\";\nworkspace -fr \"alembicCache\" \"cache/alembic\";\nworkspace -fr \"renderData\" \"renderData\";\nworkspace -fr \"sourceImages\" \"sourceimages\";\nworkspace -fr \"fileCache\" \"cache/nCache\";\n", + "imageio": { + "colorManagementPreference_v2": { + "enabled": true, + "configFilePath": { + "windows": [], + "darwin": [], + "linux": [] + }, + "renderSpace": "ACEScg", + "displayName": "sRGB", + "viewName": "ACES 1.0 SDR-video" + }, + "colorManagementPreference": { + "configFilePath": { + "windows": [], + "darwin": [], + "linux": [] + }, + "renderSpace": "scene-linear Rec 709/sRGB", + "viewTransform": "sRGB gamma" + } + }, + "mel_workspace": "workspace -fr \"shaders\" \"renderData/shaders\";\nworkspace -fr \"images\" \"renders/maya\";\nworkspace -fr \"particles\" \"particles\";\nworkspace -fr \"mayaAscii\" \"\";\nworkspace -fr \"mayaBinary\" \"\";\nworkspace -fr \"scene\" \"\";\nworkspace -fr \"alembicCache\" \"cache/alembic\";\nworkspace -fr \"renderData\" \"renderData\";\nworkspace -fr \"sourceImages\" \"sourceimages\";\nworkspace -fr \"fileCache\" \"cache/nCache\";\n", "ext_mapping": { "model": "ma", "mayaAscii": "ma", @@ -34,12 +56,12 @@ }, "RenderSettings": { "apply_render_settings": true, - "default_render_image_folder": "renders", - "enable_all_lights": false, + "default_render_image_folder": "renders/maya", + "enable_all_lights": true, "aov_separator": "underscore", "reset_current_frame": false, "arnold_renderer": { - "image_prefix": "maya///_", + "image_prefix": "//_", "image_format": "exr", "multilayer_exr": true, "tiled": true, @@ -47,14 +69,14 @@ "additional_options": [] }, "vray_renderer": { - "image_prefix": "maya///", + "image_prefix": "//", "engine": "1", "image_format": "exr", "aov_list": [], "additional_options": [] }, "redshift_renderer": { - "image_prefix": "maya///", + "image_prefix": "//", "primary_gi_engine": "0", "secondary_gi_engine": "0", "image_format": "exr", @@ -64,7 +86,7 @@ "additional_options": [] }, "renderman_renderer": { - "image_prefix": "maya///{aov_separator}", + "image_prefix": "//{aov_separator}", "display_filters": [], "sample_filters": [], "additional_options": [] @@ -110,13 +132,25 @@ "CreateAnimation": { "enabled": true, "write_color_sets": false, + "write_face_sets": false, "defaults": [ "Main" ] }, + "CreateModel": { + "enabled": true, + "write_color_sets": false, + "write_face_sets": false, + "defaults": [ + "Main", + "Proxy", + "Sculpt" + ] + }, "CreatePointCache": { "enabled": true, "write_color_sets": false, + "write_face_sets": false, "defaults": [ "Main" ] @@ -169,14 +203,6 @@ "Main" ] }, - "CreateModel": { - "enabled": true, - "defaults": [ - "Main", - "Proxy", - "Sculpt" - ] - }, "CreateRenderSetup": { "enabled": true, "defaults": [ @@ -557,6 +583,10 @@ "vrayproxy" ] }, + "ExtractObj": { + "enabled": false, + "optional": true + }, "ValidateRigContents": { "enabled": false, "optional": true, diff --git a/openpype/settings/entities/schemas/projects_schema/schema_project_maya.json b/openpype/settings/entities/schemas/projects_schema/schema_project_maya.json index d7a2b086d9a..b2d79797a34 100644 --- a/openpype/settings/entities/schemas/projects_schema/schema_project_maya.json +++ b/openpype/settings/entities/schemas/projects_schema/schema_project_maya.json @@ -5,6 +5,76 @@ "label": "Maya", "is_file": true, "children": [ + { + "key": "imageio", + "type": "dict", + "label": "Color Management (ImageIO)", + "collapsible": true, + "is_group": true, + "children": [ + { + "key": "colorManagementPreference_v2", + "type": "dict", + "label": "Color Management Preference v2 (Maya 2022+)", + "collapsible": true, + "checkbox_key": "enabled", + "children": [ + { + "type": "boolean", + "key": "enabled", + "label": "Use Color Management Preference v2" + }, + { + "type": "path", + "key": "configFilePath", + "label": "OCIO Config File Path", + "multiplatform": true, + "multipath": true + }, + { + "type": "text", + "key": "renderSpace", + "label": "Rendering Space" + }, + { + "type": "text", + "key": "displayName", + "label": "Display" + }, + { + "type": "text", + "key": "viewName", + "label": "View" + } + ] + }, + { + "key": "colorManagementPreference", + "type": "dict", + "label": "Color Management Preference (legacy)", + "collapsible": true, + "children": [ + { + "type": "path", + "key": "configFilePath", + "label": "OCIO Config File Path", + "multiplatform": true, + "multipath": true + }, + { + "type": "text", + "key": "renderSpace", + "label": "Rendering Space" + }, + { + "type": "text", + "key": "viewTransform", + "label": "Viewer Transform" + } + ] + } + ] + }, { "type": "text", "multiline" : true, From fed2a212a8de6d2fe31d6818c23c4923cd9c12da Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 26 Oct 2022 20:04:36 +0800 Subject: [PATCH 05/23] Renderman setup for sample and display filters --- .../schemas/schema_maya_render_settings.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_render_settings.json b/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_render_settings.json index a0b38906be4..a97c58f45d7 100644 --- a/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_render_settings.json +++ b/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_render_settings.json @@ -140,7 +140,7 @@ }, { "type": "label", - "label": "Add additional options - put attribute and value, like AASamples" + "label": "Add additional options - put attribute and value, like defaultArnoldRenderOptions.AASamples = 4" }, { "type": "dict-modifiable", @@ -276,7 +276,7 @@ }, { "type": "label", - "label": "Add additional options - put attribute and value, like aaFilterSize" + "label": "Add additional options - put attribute and value, like vraySettings.aaFilterSize = 1.5" }, { "type": "dict-modifiable", @@ -405,7 +405,7 @@ }, { "type": "label", - "label": "Add additional options - put attribute and value, like reflectionMaxTraceDepth" + "label": "Add additional options - put attribute and value, like redshiftOptions.reflectionMaxTraceDepth = 3" }, { "type": "dict-modifiable", From 8a9399f93be72d40b5b25da9711c140ffcb5fc9b Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Fri, 28 Oct 2022 20:03:45 +0800 Subject: [PATCH 06/23] Renderman setup for sample and display filters --- openpype/hosts/maya/api/lib_renderproducts.py | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/openpype/hosts/maya/api/lib_renderproducts.py b/openpype/hosts/maya/api/lib_renderproducts.py index 1e883ea43f3..cd204445b7b 100644 --- a/openpype/hosts/maya/api/lib_renderproducts.py +++ b/openpype/hosts/maya/api/lib_renderproducts.py @@ -80,7 +80,7 @@ "mayahardware2": "defaultRenderGlobals.imageFilePrefix" } -RENDERMAN_IMAGE_DIR = "maya//" +RENDERMAN_IMAGE_DIR = "/" def has_tokens(string, tokens): @@ -260,20 +260,20 @@ def get_renderer_prefix(self): """ try: - file_prefix_attr = IMAGE_PREFIXES[self.renderer] + prefix_attr = IMAGE_PREFIXES[self.renderer] except KeyError: raise UnsupportedRendererException( "Unsupported renderer {}".format(self.renderer) ) - file_prefix = self._get_attr(file_prefix_attr) + prefix = self._get_attr(prefix_attr) - if not file_prefix: + if not prefix: # Fall back to scene name by default log.debug("Image prefix not set, using ") file_prefix = "" - return file_prefix + return prefix def get_render_attribute(self, attribute): """Get attribute from render options. @@ -730,13 +730,16 @@ def get_renderer_prefix(self): """Get image prefix for V-Ray. This overrides :func:`ARenderProducts.get_renderer_prefix()` as - we must add `` token manually. + we must add `` token manually. This is done only for + non-multipart outputs, where `` token doesn't make sense. See also: :func:`ARenderProducts.get_renderer_prefix()` """ prefix = super(RenderProductsVray, self).get_renderer_prefix() + if self.multipart: + return prefix aov_separator = self._get_aov_separator() prefix = "{}{}".format(prefix, aov_separator) return prefix @@ -974,15 +977,18 @@ def get_renderer_prefix(self): """Get image prefix for Redshift. This overrides :func:`ARenderProducts.get_renderer_prefix()` as - we must add `` token manually. + we must add `` token manually. This is done only for + non-multipart outputs, where `` token doesn't make sense. See also: :func:`ARenderProducts.get_renderer_prefix()` """ - file_prefix = super(RenderProductsRedshift, self).get_renderer_prefix() - separator = self.extract_separator(file_prefix) - prefix = "{}{}".format(file_prefix, separator or "_") + prefix = super(RenderProductsRedshift, self).get_renderer_prefix() + if self.multipart: + return prefix + separator = self.extract_separator(prefix) + prefix = "{}{}".format(prefix, separator or "_") return prefix def get_render_products(self): From 7cf4578d411a4500d908ff4f5102f29c1d5bccb9 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 8 Nov 2022 14:22:36 +0800 Subject: [PATCH 07/23] renderman-support-for-sample-and-display --- openpype/hosts/maya/api/lib_rendersettings.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index 91dde16db3a..10b94c324f0 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -29,7 +29,11 @@ class RenderSettings(object): _image_prefixes = { 'vray': get_current_project_settings()["maya"]["RenderSettings"]["vray_renderer"]["image_prefix"], # noqa 'arnold': get_current_project_settings()["maya"]["RenderSettings"]["arnold_renderer"]["image_prefix"], # noqa +<<<<<<< HEAD 'renderman': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["image_prefix"], # noqa +======= + 'renderman': '//{aov_separator}', +>>>>>>> develop 'redshift': get_current_project_settings()["maya"]["RenderSettings"]["redshift_renderer"]["image_prefix"] # noqa } From 64668576c4ff950542e3e0eadf651146b109ab90 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 8 Nov 2022 14:29:07 +0800 Subject: [PATCH 08/23] renderman --- openpype/hosts/maya/api/lib_rendersettings.py | 4 ---- vendor/configs/OpenColorIO-Configs | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) create mode 160000 vendor/configs/OpenColorIO-Configs diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index 10b94c324f0..91dde16db3a 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -29,11 +29,7 @@ class RenderSettings(object): _image_prefixes = { 'vray': get_current_project_settings()["maya"]["RenderSettings"]["vray_renderer"]["image_prefix"], # noqa 'arnold': get_current_project_settings()["maya"]["RenderSettings"]["arnold_renderer"]["image_prefix"], # noqa -<<<<<<< HEAD 'renderman': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["image_prefix"], # noqa -======= - 'renderman': '//{aov_separator}', ->>>>>>> develop 'redshift': get_current_project_settings()["maya"]["RenderSettings"]["redshift_renderer"]["image_prefix"] # noqa } diff --git a/vendor/configs/OpenColorIO-Configs b/vendor/configs/OpenColorIO-Configs new file mode 160000 index 00000000000..0bb079c08be --- /dev/null +++ b/vendor/configs/OpenColorIO-Configs @@ -0,0 +1 @@ +Subproject commit 0bb079c08be410030669cbf5f19ff869b88af953 From 8dc7a17a79932d479e105f09d66e9b04823b4e14 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 8 Nov 2022 14:30:11 +0800 Subject: [PATCH 09/23] Renderman support for sample and deisplay filter --- openpype/hosts/maya/api/lib_rendersettings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index 91dde16db3a..61e2a4b2ca3 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -6,7 +6,7 @@ import sys from openpype.lib import Logger -from openpype.settings import ( +from openpype.api import ( get_project_settings, get_current_project_settings ) @@ -29,7 +29,7 @@ class RenderSettings(object): _image_prefixes = { 'vray': get_current_project_settings()["maya"]["RenderSettings"]["vray_renderer"]["image_prefix"], # noqa 'arnold': get_current_project_settings()["maya"]["RenderSettings"]["arnold_renderer"]["image_prefix"], # noqa - 'renderman': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["image_prefix"], # noqa + 'renderman': 'maya///{aov_separator}', 'redshift': get_current_project_settings()["maya"]["RenderSettings"]["redshift_renderer"]["image_prefix"] # noqa } From d3f0ab475406232bb50cca8ed2800e60a7ae52cd Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 8 Nov 2022 14:31:24 +0800 Subject: [PATCH 10/23] Renderman support for sample and deisplay filter --- openpype/hosts/maya/api/lib_rendersettings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index 61e2a4b2ca3..c56d4aa9038 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -29,7 +29,7 @@ class RenderSettings(object): _image_prefixes = { 'vray': get_current_project_settings()["maya"]["RenderSettings"]["vray_renderer"]["image_prefix"], # noqa 'arnold': get_current_project_settings()["maya"]["RenderSettings"]["arnold_renderer"]["image_prefix"], # noqa - 'renderman': 'maya///{aov_separator}', + 'renderman': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["image_prefix"], # noqa 'redshift': get_current_project_settings()["maya"]["RenderSettings"]["redshift_renderer"]["image_prefix"] # noqa } From 7885a7b10c87a5387ac276a9d303e6801ff0ce6e Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 8 Nov 2022 14:32:35 +0800 Subject: [PATCH 11/23] Renderman support for sample and deisplay filter --- openpype/hosts/maya/api/lib_rendersettings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index c56d4aa9038..61e2a4b2ca3 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -29,7 +29,7 @@ class RenderSettings(object): _image_prefixes = { 'vray': get_current_project_settings()["maya"]["RenderSettings"]["vray_renderer"]["image_prefix"], # noqa 'arnold': get_current_project_settings()["maya"]["RenderSettings"]["arnold_renderer"]["image_prefix"], # noqa - 'renderman': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["image_prefix"], # noqa + 'renderman': 'maya///{aov_separator}', 'redshift': get_current_project_settings()["maya"]["RenderSettings"]["redshift_renderer"]["image_prefix"] # noqa } From 59cab53c68908227f60629157c8181646d7c93d0 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 8 Nov 2022 14:33:50 +0800 Subject: [PATCH 12/23] Renderman support for sample and deisplay filter --- openpype/hosts/maya/api/lib_rendersettings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index 61e2a4b2ca3..33685818e31 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -29,7 +29,7 @@ class RenderSettings(object): _image_prefixes = { 'vray': get_current_project_settings()["maya"]["RenderSettings"]["vray_renderer"]["image_prefix"], # noqa 'arnold': get_current_project_settings()["maya"]["RenderSettings"]["arnold_renderer"]["image_prefix"], # noqa - 'renderman': 'maya///{aov_separator}', + 'renderman': '//{aov_separator}', 'redshift': get_current_project_settings()["maya"]["RenderSettings"]["redshift_renderer"]["image_prefix"] # noqa } From 81e31576163c9fe63dd31997a64356a1628b28e8 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 8 Nov 2022 14:35:19 +0800 Subject: [PATCH 13/23] Renderman support for sample and deisplay filter --- openpype/hosts/maya/api/lib_rendersettings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index 33685818e31..bfd24a56086 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -29,7 +29,7 @@ class RenderSettings(object): _image_prefixes = { 'vray': get_current_project_settings()["maya"]["RenderSettings"]["vray_renderer"]["image_prefix"], # noqa 'arnold': get_current_project_settings()["maya"]["RenderSettings"]["arnold_renderer"]["image_prefix"], # noqa - 'renderman': '//{aov_separator}', + 'renderman': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["image_prefix"], # noqa 'redshift': get_current_project_settings()["maya"]["RenderSettings"]["redshift_renderer"]["image_prefix"] # noqa } From c3c7288803da3babe334c30411024bfedf9e7d79 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 8 Nov 2022 14:36:17 +0800 Subject: [PATCH 14/23] Renderman support for sample and deisplay filter --- openpype/hosts/maya/api/lib_rendersettings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index bfd24a56086..33685818e31 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -29,7 +29,7 @@ class RenderSettings(object): _image_prefixes = { 'vray': get_current_project_settings()["maya"]["RenderSettings"]["vray_renderer"]["image_prefix"], # noqa 'arnold': get_current_project_settings()["maya"]["RenderSettings"]["arnold_renderer"]["image_prefix"], # noqa - 'renderman': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["image_prefix"], # noqa + 'renderman': '//{aov_separator}', 'redshift': get_current_project_settings()["maya"]["RenderSettings"]["redshift_renderer"]["image_prefix"] # noqa } From ddcb21362ad4a19c48d3e321beeaaa456c80fa48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Samohel?= Date: Wed, 23 Nov 2022 14:54:55 +0100 Subject: [PATCH 15/23] Removed submodule vendor/configs/OpenColorIO-Configs --- vendor/configs/OpenColorIO-Configs | 1 - 1 file changed, 1 deletion(-) delete mode 160000 vendor/configs/OpenColorIO-Configs diff --git a/vendor/configs/OpenColorIO-Configs b/vendor/configs/OpenColorIO-Configs deleted file mode 160000 index 0bb079c08be..00000000000 --- a/vendor/configs/OpenColorIO-Configs +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0bb079c08be410030669cbf5f19ff869b88af953 From 474958f7fa7d7fff65605a58e71b090ce5bd658a Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 29 Nov 2022 15:35:28 +0800 Subject: [PATCH 16/23] set the correct path for filters, image ouptut and image directory --- openpype/hosts/maya/api/lib_rendersettings.py | 29 +++++++++++++++++-- .../defaults/project_settings/maya.json | 6 +++- .../schemas/schema_maya_render_settings.json | 20 +++++++++++++ 3 files changed, 51 insertions(+), 4 deletions(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index 43c6cd6e36a..2da444c3fe5 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -22,17 +22,25 @@ class RenderSettings(object): _image_prefix_nodes = { 'vray': 'vraySettings.fileNamePrefix', 'arnold': 'defaultRenderGlobals.imageFilePrefix', - 'renderman': 'defaultRenderGlobals.imageFilePrefix', + 'renderman': 'rmanGlobals.imageFileFormat', 'redshift': 'defaultRenderGlobals.imageFilePrefix' } _image_prefixes = { 'vray': get_current_project_settings()["maya"]["RenderSettings"]["vray_renderer"]["image_prefix"], # noqa 'arnold': get_current_project_settings()["maya"]["RenderSettings"]["arnold_renderer"]["image_prefix"], # noqa - 'renderman': '//{aov_separator}', + 'renderman': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["image_prefix"], # noqa 'redshift': get_current_project_settings()["maya"]["RenderSettings"]["redshift_renderer"]["image_prefix"] # noqa } + # Renderman only + _image_dir ={ + 'renderman': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["image_dir"], # noqa + 'cryptomatte': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["cryptomatte_dir"], # noqa + 'imageDisplay': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["imageDisplay_dir"], # noqa + "watermark": get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["watermark_dir"] # noqa + } + _aov_chars = { "dot": ".", "dash": "-", @@ -81,7 +89,6 @@ def set_default_renderer_settings(self, renderer=None): prefix, type="string") # noqa else: print("{0} isn't a supported renderer to autoset settings.".format(renderer)) # noqa - # TODO: handle not having res values in the doc width = asset_doc["data"].get("resolutionWidth") height = asset_doc["data"].get("resolutionHeight") @@ -97,6 +104,9 @@ def set_default_renderer_settings(self, renderer=None): self._set_redshift_settings(width, height) if renderer == "renderman": + image_dir = self._image_dir["renderman"] + cmds.setAttr("rmanGlobals.imageOutputDir", + image_dir, type= "string") self._set_renderman_settings(width, height) def _set_arnold_settings(self, width, height): @@ -181,6 +191,10 @@ def _set_renderman_settings(self, width, height): cmds.connectAttr(filter_nodes + ".message", "rmanGlobals.displayFilters[%i]" % i, force=True) + if filter_nodes.startswith("PxrImageDisplayFilter"): + imageDisplay_dir = self._image_dir["imageDisplay"] + cmds.setAttr(filter_nodes + ".filename", + imageDisplay_dir, type="string") sample_filters = rman_render_presets["sample_filters"] s_filters_number = len(sample_filters) @@ -195,6 +209,15 @@ def _set_renderman_settings(self, width, height): "rmanGlobals.sampleFilters[%i]" % n, force=True) + if filter_nodes.startswith("PxrCryptomatte"): + matte_dir = self._image_dir["cryptomatte"] + cmds.setAttr(filter_nodes + ".filename", + matte_dir, type="string") + elif filter_nodes.startswith("PxrWatermarkFilter"): + watermark_dir = self._image_dir["watermark"] + cmds.setAttr(filter_nodes + ".filename", + watermark_dir, type="string") + additional_options = rman_render_presets["additional_options"] self._set_global_output_settings() diff --git a/openpype/settings/defaults/project_settings/maya.json b/openpype/settings/defaults/project_settings/maya.json index 3b03bbe2ddf..e14a87af869 100644 --- a/openpype/settings/defaults/project_settings/maya.json +++ b/openpype/settings/defaults/project_settings/maya.json @@ -86,9 +86,13 @@ "additional_options": [] }, "renderman_renderer": { - "image_prefix": "//{aov_separator}", + "image_prefix": "{aov_separator}..", + "image_dir": "/", "display_filters": [], + "imageDisplay_dir": "/imageDisplayFilter..", "sample_filters": [], + "cryptomatte_dir": "/cryptomatte..", + "watermark_dir": "/watermarkFilter..", "additional_options": [] } }, diff --git a/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_render_settings.json b/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_render_settings.json index a97c58f45d7..1edf1dbc77d 100644 --- a/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_render_settings.json +++ b/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_render_settings.json @@ -431,6 +431,11 @@ "label": "Image prefix template", "type": "text" }, + { + "key": "image_dir", + "label": "Image Output Directory", + "type": "text" + }, { "key": "display_filters", "label": "Display Filters", @@ -453,6 +458,11 @@ {"PxrWhitePointDisplayFilter": "PxrWhitePointDisplayFilter"} ] }, + { + "key": "imageDisplay_dir", + "label": "Image Display Filter Directory", + "type": "text" + }, { "key": "sample_filters", "label": "Sample Filters", @@ -470,6 +480,16 @@ {"PxrWhitePointSampleFilter": "PxrWhitePointSampleFilter"} ] }, + { + "key": "cryptomatte_dir", + "label": "Cryptomatte Output Directory", + "type": "text" + }, + { + "key": "watermark_dir", + "label": "Watermark Filter Directory", + "type": "text" + }, { "type": "label", "label": "Add additional options - put attribute and value, like Ci" From 6e3c75f0f0c3d01845828382a8daf72f5605aa17 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 29 Nov 2022 15:38:11 +0800 Subject: [PATCH 17/23] set the correct path for filters, image ouptut and image directory --- openpype/hosts/maya/api/lib_rendersettings.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index 2da444c3fe5..cd7bbfea4d0 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -34,7 +34,7 @@ class RenderSettings(object): } # Renderman only - _image_dir ={ + _image_dir = { 'renderman': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["image_dir"], # noqa 'cryptomatte': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["cryptomatte_dir"], # noqa 'imageDisplay': get_current_project_settings()["maya"]["RenderSettings"]["renderman_renderer"]["imageDisplay_dir"], # noqa @@ -105,8 +105,8 @@ def set_default_renderer_settings(self, renderer=None): if renderer == "renderman": image_dir = self._image_dir["renderman"] - cmds.setAttr("rmanGlobals.imageOutputDir", - image_dir, type= "string") + cmds.setAttr("rmanGlobals.imageOutputDir", image_dir, + type= "string") self._set_renderman_settings(width, height) def _set_arnold_settings(self, width, height): From 8b5a7c4061a0eb68a60271023ddc8a404b9a7fec Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 29 Nov 2022 15:40:56 +0800 Subject: [PATCH 18/23] set the correct path for filters, image ouptut and image directory --- openpype/hosts/maya/api/lib_rendersettings.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index cd7bbfea4d0..847e57ffa0a 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -105,8 +105,9 @@ def set_default_renderer_settings(self, renderer=None): if renderer == "renderman": image_dir = self._image_dir["renderman"] - cmds.setAttr("rmanGlobals.imageOutputDir", image_dir, - type= "string") + rman_image_dir_attr = "rmanGlobals.imageOutputDir" + cmds.setAttr(rman_image_dir_attr, + image_dir,type= "string") self._set_renderman_settings(width, height) def _set_arnold_settings(self, width, height): From f63c28fd5b76c9e64be909c1b33b484c69f059df Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 29 Nov 2022 15:42:40 +0800 Subject: [PATCH 19/23] set the correct path for filters, image ouptut and image directory --- openpype/hosts/maya/api/lib_rendersettings.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index 847e57ffa0a..5ec17565060 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -106,8 +106,7 @@ def set_default_renderer_settings(self, renderer=None): if renderer == "renderman": image_dir = self._image_dir["renderman"] rman_image_dir_attr = "rmanGlobals.imageOutputDir" - cmds.setAttr(rman_image_dir_attr, - image_dir,type= "string") + cmds.setAttr(rman_image_dir_attr, image_dir, type= "string") self._set_renderman_settings(width, height) def _set_arnold_settings(self, width, height): From 7e65eb24018795df68b794166d21f4e0f515a9d7 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 29 Nov 2022 15:44:01 +0800 Subject: [PATCH 20/23] set the correct path for filters, image ouptut and image directory --- openpype/hosts/maya/api/lib_rendersettings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index 5ec17565060..0a3828787c0 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -105,8 +105,8 @@ def set_default_renderer_settings(self, renderer=None): if renderer == "renderman": image_dir = self._image_dir["renderman"] - rman_image_dir_attr = "rmanGlobals.imageOutputDir" - cmds.setAttr(rman_image_dir_attr, image_dir, type= "string") + cmds.setAttr("rmanGlobals.imageOutputDir", + image_dir, type="string") self._set_renderman_settings(width, height) def _set_arnold_settings(self, width, height): From 7dc9734a1e1a3f60348b96fc9314bdfde2c99c87 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 29 Nov 2022 18:49:18 +0800 Subject: [PATCH 21/23] add the correct image prefix format for Renderman --- openpype/hosts/maya/api/lib_rendersettings.py | 11 +++++++++-- openpype/settings/defaults/project_settings/maya.json | 6 +++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index 0a3828787c0..a99ae057e25 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -107,7 +107,8 @@ def set_default_renderer_settings(self, renderer=None): image_dir = self._image_dir["renderman"] cmds.setAttr("rmanGlobals.imageOutputDir", image_dir, type="string") - self._set_renderman_settings(width, height) + self._set_renderman_settings(width, height, + aov_separator) def _set_arnold_settings(self, width, height): """Sets settings for Arnold.""" @@ -171,7 +172,7 @@ def _set_redshift_settings(self, width, height): cmds.setAttr("defaultResolution.height", height) self._additional_attribs_setter(additional_options) - def _set_renderman_settings(self, width, height): + def _set_renderman_settings(self, width, height, aov_separator): """Sets settings for Renderman""" rman_render_presets = ( self._project_settings @@ -193,6 +194,8 @@ def _set_renderman_settings(self, width, height): force=True) if filter_nodes.startswith("PxrImageDisplayFilter"): imageDisplay_dir = self._image_dir["imageDisplay"] + imageDisplay_dir = imageDisplay_dir.replace("{aov_separator}", + aov_separator) cmds.setAttr(filter_nodes + ".filename", imageDisplay_dir, type="string") @@ -211,10 +214,14 @@ def _set_renderman_settings(self, width, height): if filter_nodes.startswith("PxrCryptomatte"): matte_dir = self._image_dir["cryptomatte"] + matte_dir = matte_dir.replace("{aov_separator}", + aov_separator) cmds.setAttr(filter_nodes + ".filename", matte_dir, type="string") elif filter_nodes.startswith("PxrWatermarkFilter"): watermark_dir = self._image_dir["watermark"] + watermark_dir = watermark_dir.replace("{aov_separator}", + aov_separator) cmds.setAttr(filter_nodes + ".filename", watermark_dir, type="string") diff --git a/openpype/settings/defaults/project_settings/maya.json b/openpype/settings/defaults/project_settings/maya.json index e14a87af869..9c33d19878c 100644 --- a/openpype/settings/defaults/project_settings/maya.json +++ b/openpype/settings/defaults/project_settings/maya.json @@ -89,10 +89,10 @@ "image_prefix": "{aov_separator}..", "image_dir": "/", "display_filters": [], - "imageDisplay_dir": "/imageDisplayFilter..", + "imageDisplay_dir": "/{aov_separator}imageDisplayFilter..", "sample_filters": [], - "cryptomatte_dir": "/cryptomatte..", - "watermark_dir": "/watermarkFilter..", + "cryptomatte_dir": "/{aov_separator}cryptomatte..", + "watermark_dir": "/{aov_separator}watermarkFilter..", "additional_options": [] } }, From 8ad8aa9e52dc44fec91b85ed2764c6ab645a7d51 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 29 Nov 2022 18:50:16 +0800 Subject: [PATCH 22/23] add the correct image prefix format for Renderman --- openpype/hosts/maya/api/lib_rendersettings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/hosts/maya/api/lib_rendersettings.py b/openpype/hosts/maya/api/lib_rendersettings.py index a99ae057e25..da0eb44da25 100644 --- a/openpype/hosts/maya/api/lib_rendersettings.py +++ b/openpype/hosts/maya/api/lib_rendersettings.py @@ -221,7 +221,7 @@ def _set_renderman_settings(self, width, height, aov_separator): elif filter_nodes.startswith("PxrWatermarkFilter"): watermark_dir = self._image_dir["watermark"] watermark_dir = watermark_dir.replace("{aov_separator}", - aov_separator) + aov_separator) cmds.setAttr(filter_nodes + ".filename", watermark_dir, type="string") From 92e3d10b39de62580f1634898b1e19025a597833 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 17 Jan 2023 18:23:20 +0800 Subject: [PATCH 23/23] add cryptomatte into collect render layers --- openpype/hosts/maya/api/lib_renderproducts.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/openpype/hosts/maya/api/lib_renderproducts.py b/openpype/hosts/maya/api/lib_renderproducts.py index c54e3ab3e0c..0eecedd2314 100644 --- a/openpype/hosts/maya/api/lib_renderproducts.py +++ b/openpype/hosts/maya/api/lib_renderproducts.py @@ -1132,6 +1132,7 @@ class RenderProductsRenderman(ARenderProducts): """ renderer = "renderman" + unmerged_aovs = {"PxrCryptomatte"} def get_render_products(self): """Get all AOVs. @@ -1181,6 +1182,17 @@ def get_render_products(self): if not display_types.get(display["driverNode"]["type"]): continue + has_cryptomatte = cmds.ls(type=self.unmerged_aovs) + matte_enabled = False + if has_cryptomatte: + for cryptomatte in has_cryptomatte: + cryptomatte_aov = cryptomatte + matte_name = "cryptomatte" + rman_globals = cmds.listConnections(cryptomatte + + ".message") + if rman_globals: + matte_enabled = True + aov_name = name if aov_name == "rmanDefaultDisplay": aov_name = "beauty" @@ -1199,6 +1211,15 @@ def get_render_products(self): camera=camera, multipart=True ) + + if has_cryptomatte and matte_enabled: + cryptomatte = RenderProduct( + productName=matte_name, + aov=cryptomatte_aov, + ext=extensions, + camera=camera, + multipart=True + ) else: # this code should handle the case where no multipart # capable format is selected. But since it involves @@ -1218,6 +1239,9 @@ def get_render_products(self): products.append(product) + if has_cryptomatte and matte_enabled: + products.append(cryptomatte) + return products def get_files(self, product):