From 474958f7fa7d7fff65605a58e71b090ce5bd658a Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 29 Nov 2022 15:35:28 +0800 Subject: [PATCH] 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 43c6cd6e36..2da444c3fe 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 @@ class RenderSettings(object): 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 @@ class RenderSettings(object): 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 @@ class RenderSettings(object): 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 @@ class RenderSettings(object): "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 3b03bbe2dd..e14a87af86 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 a97c58f45d..1edf1dbc77 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"