diff --git a/Changes.md b/Changes.md index bc4b51bf7e8..da57768a087 100644 --- a/Changes.md +++ b/Changes.md @@ -8,7 +8,9 @@ Improvements - USD : Added automatic render-time translation of UsdPreviewSurface shaders to Cycles. - SetEditor : Added support for dragging a set name onto a node in the Graph Editor to create or modify a connected `SetFilter` node. Holding Shift while dragging will add to the set expression. Holding Control will remove from the set expression. Only set expressions with a simple list of sets are supported. Expressions with boolean or hierarchy operators are not supported. - GraphEditor : Improved pointer used to indicate when dropping a location would find the source node. -- RenderPassEditor : Added "Camera Inclusions" and "Camera Exclusions" columns, providing control over the camera visibility of scene locations in each render pass. +- RenderPassEditor : + - Added "Camera Inclusions" and "Camera Exclusions" columns, providing control over the camera visibility of scene locations in each render pass. + - Added "Matte Inclusions" and "Matte Exclusions" columns, providing control over the scene locations used as holdout mattes in each render pass. Fixes ----- diff --git a/startup/GafferScene/standardOptions.py b/startup/GafferScene/standardOptions.py index 8ed308a977f..125af0187f7 100644 --- a/startup/GafferScene/standardOptions.py +++ b/startup/GafferScene/standardOptions.py @@ -180,3 +180,27 @@ over this option. """ ) + +Gaffer.Metadata.registerValue( "option:render:matteInclusions", "label", "Matte Inclusions" ) +Gaffer.Metadata.registerValue( "option:render:matteInclusions", "defaultValue", IECore.StringData( "" ) ) +Gaffer.Metadata.registerValue( + "option:render:matteInclusions", + "description", + """ + A set expression that specifies objects that should be treated as matte (holdout) + objects along with their descendants. Matte attributes authored in the scene take + precedence over this option. + """ +) + +Gaffer.Metadata.registerValue( "option:render:matteExclusions", "label", "Matte Exclusions" ) +Gaffer.Metadata.registerValue( "option:render:matteExclusions", "defaultValue", IECore.StringData( "" ) ) +Gaffer.Metadata.registerValue( + "option:render:matteExclusions", + "description", + """ + A set expression that excludes the matched objects and their descendants from being + treated as matte (holdout) objects. Matte attributes authored in the scene take + precedence over this option. + """ +) diff --git a/startup/gui/renderPassEditor.py b/startup/gui/renderPassEditor.py index bf62014cc23..2ab396d22da 100644 --- a/startup/gui/renderPassEditor.py +++ b/startup/gui/renderPassEditor.py @@ -46,6 +46,8 @@ GafferSceneUI.RenderPassEditor.registerOption( "*", "render:additionalLights" ) GafferSceneUI.RenderPassEditor.registerOption( "*", "render:cameraInclusions" ) GafferSceneUI.RenderPassEditor.registerOption( "*", "render:cameraExclusions" ) +GafferSceneUI.RenderPassEditor.registerOption( "*", "render:matteInclusions" ) +GafferSceneUI.RenderPassEditor.registerOption( "*", "render:matteExclusions" ) GafferSceneUI.RenderPassEditor.registerOption( "*", "render:defaultRenderer", "Render" ) GafferSceneUI.RenderPassEditor.registerOption( "*", "render:camera", "Render" )