From 413810defbf17f904d9d5215196a14fc2ae75c16 Mon Sep 17 00:00:00 2001 From: John Haddon Date: Mon, 18 Dec 2023 10:38:20 +0000 Subject: [PATCH 1/3] ArnoldShaderUI : Improve file browsers Fixes #5592. --- Changes.md | 13 +++++++++++++ arnoldPlugins/gaffer.mtd | 12 ++++++++++++ python/GafferArnoldUI/ArnoldShaderUI.py | 15 ++++++++++++++- 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/Changes.md b/Changes.md index 6be70fdf539..2b0ace40186 100644 --- a/Changes.md +++ b/Changes.md @@ -1,10 +1,23 @@ 1.3.x.x (relative to 1.3.9.0) ======= +Improvements +------------ + +- ArnoldShader, ArnoldColorManager : Improved browsers for file parameters (#5592) : + - Added filtering by extension. + - Added bookmarks. + API --- - EditScopeAlgo : Added support for editing options for a specific render pass. +- ArnoldShaderUI : Added support for Gaffer filebrowser metadata in Arnold `.mtd` files. The following fields are supported, and correspond directly to the metadata documented on the PathPlugValueWidget and FileSystemPathPlugValueWidget : + - `path:leaf` + - `path:valid` + - `path:bookmarks` + - `fileSystemPath:extensions` + - `fileSystemPath:extensionsLabel` 1.3.9.0 (relative to 1.3.8.0) ======= diff --git a/arnoldPlugins/gaffer.mtd b/arnoldPlugins/gaffer.mtd index 3d299e84b32..6510ba3d7e6 100644 --- a/arnoldPlugins/gaffer.mtd +++ b/arnoldPlugins/gaffer.mtd @@ -802,6 +802,10 @@ widget STRING "filename" page STRING "Shape" gaffer.layout.index INT 5 + gaffer.path.leaf BOOL true + gaffer.path.valid BOOL true + gaffer.path.bookmarks STRING "iesProfile" + gaffer.fileSystemPath.extensions STRING "ies" [attr radius] page STRING "Shape" gaffer.layout.index INT 6 @@ -1463,6 +1467,10 @@ [attr filename] widget STRING "filename" gaffer.layout.index INT 0 + gaffer.path.valid BOOL true + gaffer.path.leaf BOOL true + gaffer.path.bookmarks STRING "texture" + gaffer.fileSystemPath.extensions STRING "tx" [attr color_space] gaffer.layout.index INT 1 [attr uvset] @@ -3127,6 +3135,10 @@ [attr config] widget STRING "filename" + gaffer.path.valid BOOL true + gaffer.path.leaf BOOL true + gaffer.path.bookmarks STRING "openColorIOConfig" + gaffer.fileSystemPath.extensions STRING "ocio" [attr linear_chromaticities] # Disable because we don't support array plugs yet diff --git a/python/GafferArnoldUI/ArnoldShaderUI.py b/python/GafferArnoldUI/ArnoldShaderUI.py index 7b6b8c2815f..bcca575cfdb 100644 --- a/python/GafferArnoldUI/ArnoldShaderUI.py +++ b/python/GafferArnoldUI/ArnoldShaderUI.py @@ -287,7 +287,7 @@ def __translateNodeMetadata( nodeEntry ) : "checkBox" : "GafferUI.BoolPlugValueWidget", "popup" : "GafferUI.PresetsPlugValueWidget", "mapper" : "GafferUI.PresetsPlugValueWidget", - "filename" : "GafferUI.PathPlugValueWidget", + "filename" : "GafferUI.FileSystemPathPlugValueWidget", "camera" : "GafferSceneUI.ScenePathPlugValueWidget", "null" : "", }[widget] @@ -398,6 +398,19 @@ def addActivator( activator ) : addActivator( visibilityActivator ) __metadata[paramPath]["layout:visibilityActivator"] = visibilityActivator + # FileSystemPathPlugValueWidget metadata + + for gafferKey, arnoldGetter in [ + ( "path:leaf", __aiMetadataGetBool ), + ( "path:valid", __aiMetadataGetBool ), + ( "path:bookmarks", __aiMetadataGetStr ), + ( "fileSystemPath:extensions", __aiMetadataGetStr ), + ( "fileSystemPath:extensionsLabel", __aiMetadataGetStr ), + ] : + value = arnoldGetter( nodeEntry, paramName, "gaffer.{}".format( gafferKey.replace( ":", "." ) ) ) + if value is not None : + __metadata[paramPath][gafferKey] = value + with IECoreArnold.UniverseBlock( writable = False ) : nodeIt = arnold.AiUniverseGetNodeEntryIterator( arnold.AI_NODE_SHADER | arnold.AI_NODE_LIGHT | arnold.AI_NODE_COLOR_MANAGER | arnold.AI_NODE_DRIVER ) From 6a1941f33c819ce76578a425c0911f24ce543e74 Mon Sep 17 00:00:00 2001 From: John Haddon Date: Mon, 18 Dec 2023 10:43:21 +0000 Subject: [PATCH 2/3] USDLightUI : Add IES file browser --- Changes.md | 1 + python/GafferUSDUI/USDLightUI.py | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/Changes.md b/Changes.md index 2b0ace40186..b6832b44112 100644 --- a/Changes.md +++ b/Changes.md @@ -7,6 +7,7 @@ Improvements - ArnoldShader, ArnoldColorManager : Improved browsers for file parameters (#5592) : - Added filtering by extension. - Added bookmarks. +- USDLight : Added file browser for `shaping:ies:file` parameter. API --- diff --git a/python/GafferUSDUI/USDLightUI.py b/python/GafferUSDUI/USDLightUI.py index 07eb5b2815f..49054795f0f 100644 --- a/python/GafferUSDUI/USDLightUI.py +++ b/python/GafferUSDUI/USDLightUI.py @@ -72,6 +72,14 @@ "label", lambda plug : " ".join( IECore.CamelCase.toSpaced( t ) for t in plug.getName().split( ":" )[1:] ) ], + "parameters.shaping:ies:file.value" : [ + "plugValueWidget:type", "GafferUI.FileSystemPathPlugValueWidget", + "path:bookmarks", "iesProfile", + "path:leaf", True, + "path:value", True, + "fileSystemPath:extensions", "ies", + ], + "parameters.shadow:enable" : [ "layout:section", "Shadow" ], "parameters.shadow:color" : [ "layout:section", "Shadow" ], "parameters.shadow:distance" : [ "layout:section", "Shadow" ], From 5aba490833f7389c05c19bb2b86c12aee9a40553 Mon Sep 17 00:00:00 2001 From: John Haddon Date: Mon, 18 Dec 2023 10:44:42 +0000 Subject: [PATCH 3/3] OpenColorIOContextUI : Add config file browser --- Changes.md | 1 + python/GafferImageUI/OpenColorIOConfigPlugUI.py | 1 + python/GafferImageUI/OpenColorIOContextUI.py | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/Changes.md b/Changes.md index b6832b44112..0e710cf4322 100644 --- a/Changes.md +++ b/Changes.md @@ -8,6 +8,7 @@ Improvements - Added filtering by extension. - Added bookmarks. - USDLight : Added file browser for `shaping:ies:file` parameter. +- OpenColorIOContext : Added file browser for `config` plug. API --- diff --git a/python/GafferImageUI/OpenColorIOConfigPlugUI.py b/python/GafferImageUI/OpenColorIOConfigPlugUI.py index 41375a89892..c5744c1f1d6 100644 --- a/python/GafferImageUI/OpenColorIOConfigPlugUI.py +++ b/python/GafferImageUI/OpenColorIOConfigPlugUI.py @@ -63,6 +63,7 @@ Gaffer.Metadata.registerValue( GafferImage.OpenColorIOConfigPlug, "config", "fileSystemPath:extensions", "ocio" ) Gaffer.Metadata.registerValue( GafferImage.OpenColorIOConfigPlug, "config", "path:leaf", True ) Gaffer.Metadata.registerValue( GafferImage.OpenColorIOConfigPlug, "config", "path:valid", True ) +Gaffer.Metadata.registerValue( GafferImage.OpenColorIOConfigPlug, "config", "path:bookmarks", "openColorIOConfig" ) Gaffer.Metadata.registerValue( GafferImage.OpenColorIOConfigPlug, "workingSpace", "plugValueWidget:type", "GafferUI.PresetsPlugValueWidget" ) Gaffer.Metadata.registerValue( GafferImage.OpenColorIOConfigPlug, "workingSpace", "presetNames", GafferImageUI.OpenColorIOTransformUI.colorSpacePresetNames ) diff --git a/python/GafferImageUI/OpenColorIOContextUI.py b/python/GafferImageUI/OpenColorIOContextUI.py index 6b7b0f9ef49..6f58461ad33 100644 --- a/python/GafferImageUI/OpenColorIOContextUI.py +++ b/python/GafferImageUI/OpenColorIOContextUI.py @@ -102,6 +102,11 @@ "plugValueWidget:type", "GafferUI.PresetsPlugValueWidget", "presetsPlugValueWidget:allowCustom", True, + "presetsPlugValueWidget:customWidgetType", "GafferUI.FileSystemPathPlugValueWidget", + "path:leaf", True, + "path:valid", True, + "path:bookmarks", "openColorIOConfig", + "fileSystemPath:extensions", "ocio", "preset:$OCIO", "", "preset:ACES 1.3 - CG Config", "ocio://cg-config-v1.0.0_aces-v1.3_ocio-v2.1",